我正试着从"e.html“中提取天气预报。有了下面的代码,我能够得到包含数据的表,但是我被困住了。白天,第二行是今天的预报,第三行是今晚的预报。最后,第二排成为今夜的预测,而今天的预测被取消。我想要做的是解析整个表,以获得对今天、今晚和每一个连续的一天的预测,即使今天的预测没有了;如下所示:
今天:太阳和云的混合体。今天下午有60 %的可能性会有雷暴的危险。大范围的烟雾。高26。紫外线指数6或更高。今晚:部分多云。今天晚上很清楚。早上前越来越多的云量。大范围的烟雾。星期五:主要多云。大范围的烟雾。西南风转为西南风,下午阵风至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"})
发布于 2015-08-28 09:09:48
您可以对表中的每一行进行迭代,并获取行的值。一个例子是:
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())
使用这种方法,您将得到每一行的内容(不包括第一行,也就是一些标题)。
https://stackoverflow.com/questions/32257321
复制相似问题