【发布时间】:2021-12-22 14:23:39
【问题描述】:
我正在尝试从 weather.com 中抓取天气信息,但由于某种原因它无法正常工作,这是错误:
Traceback (most recent call last):
File "main.py", line 6, in <module>
all=soup.find("div",{"class":"locations-title ten-day-page-title"}).find("h1").text
AttributeError: 'NoneType' object has no attribute 'find'
我不知道这里出了什么问题。 代码如下:
import requests
from bs4 import BeautifulSoup
page = requests.get("https://weather.com/en-IE/weather/tenday/l/bf217d537cc1c8074ec195ce07fb74de3c1593caa6033b7c3be4645ccc5b01de")
soup = BeautifulSoup(page.content,"html.parser")
all=soup.find("div",{"class":"locations-title ten-day-page-title"}).find("h1").text
table=soup.find_all("table",{"class":"twc-table"})
l=[]
for items in table:
for i in range(len(items.find_all("tr"))-1):
d = {}
d["day"]=items.find_all("span",{"class":"date-time"})[i].text
d["date"]=items.find_all("span",{"class":"day-detail"})[i].text
d["desc"]=items.find_all("td",{"class":"description"})[i].text
d["temp"]=items.find_all("td",{"class":"temp"})[i].text
d["precip"]=items.find_all("td",{"class":"precip"})[i].text
d["wind"]=items.find_all("td",{"class":"wind"})[i].text
d["humidity"]=items.find_all("td",{"class":"humidity"})[i].text
l.append(d)
我真的不明白这里发生了什么,因为我是 python 和整个库的新手。我希望有人可以帮助我解决这个问题。
【问题讨论】:
-
第一个
soup.find返回None,这意味着该页面上不存在div和class标签,您应该确保检查您是否拥有正确的标签(可以很简单作为拼写错误)
标签: python html web-scraping beautifulsoup python-requests