解析环境加拿大网站

时间:2015-08-27 18:53:18

标签: python beautifulsoup python-2.6

我正试图从“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"})

1 个答案:

答案 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())

使用这种方法,您可以获得每行的内容(排除第一个是某些标题。