我正试图从“https://weather.gc.ca/city/pages/ab-52_metric_e.html”中搜集天气预报。使用下面的代码,我能够得到包含数据的表,但我被卡住了。在白天,第二行包含今天的预测,第三行包含今晚的预测。在一天结束时,第二行成为今夜的预测,今天的预测被取消。我想要做的就是解析表格,以获得今天,今晚和每个连续日的预测,即使今天的预测缺失也是如此;像这样的东西:
今天:太阳和云的混合。今天下午60%的阵雨有可能出现雷暴风险。广泛的烟雾。高26.紫外线指数6或高。 今晚:部分多云。今晚要清楚了。在早晨之前增加浑浊。广泛的烟雾。低13。 星期五:主要是多云。广泛的烟雾。风向西南30公里/小时,下午阵风50。高24。
#using Beautiful Soup 3, Python 2.6
from BeautifulSoup import BeautifulSoup
import urllib
pageFile = urllib.urlopen("https://weather.gc.ca/city/pages/ab- 52_metric_e.html")
pageHtml = pageFile.read()
pageFile.close()
soup = BeautifulSoup("".join(pageHtml))
data = soup.find("div", {"id": "mainContent"})
forecast = data.find('table',{'class':"table mrgn-bttm-md mrgn-tp-md textforecast hidden-xs"})
答案 0 :(得分:1)
您可以执行类似迭代表中每一行的操作并获取行的值。一个例子是:
forecast = data.find('table',{'class':"table mrgn-bttm-md mrgn-tp-md textforecast hidden-xs"}).find_all("tr")
for tr in forecast[1:]:
print " ".join(tr.text.split())
使用这种方法,您可以获得每行的内容(排除第一个是某些标题。