我不知道发生了什么,但是两天前相同的代码仍在工作!
我想做的是获取带有itemprop =“ name”的文本,这是所提供项目的标题。在这种情况下:“色板”。
import requests
import bs4
response2 = requests.get('https://www.willhaben.at/iad/kaufen-und-verkaufen/d/swatch-209522646/').content
soup2 = bs4.BeautifulSoup(response2, "lxml")
texttitle = soup2.find(itemprop = "name").get_text().strip()
print(texttitle)
我怎么总是得到
AttributeError: 'NoneType' object has no attribute 'get_text'
谁能解释我为什么会出现AttributeError?提前谢谢了。
编辑:
我也尝试直接使用css路径定位它,但这并没有给我任何结果。
通过:
texttitle = soup2.find('div.adHeadingLine div.adHeading h1.header.cXenseParse').get_text().strip()
最佳答案
您收到的错误表明页面上没有这样的元素。
昨天可能是这样,但是网站的标记可能会更改。
您可以确保为其提供条件的元素确实存在:
from bs4 import BeautifulSoup
from urllib2 import urlopen
response = urlopen('https://www.willhaben.at/iad/kaufen-und-verkaufen/d/swatch-209522646/')
soup = BeautifulSoup(response, "lxml")
if soup.find(itemprop='name'):
texttitle = soup.find(itemprop='name').text.strip()
print(texttitle)
else:
print('no such element')
关于python - 从html获取文本时发生AttributeError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44738182/