属性总是 None
Attribute always None
我一直在尝试创建一个网络抓取工具,用于收集网站上某个对象的名称、价格和地区,但无法对其执行任何操作,因为它会引发错误:
AttributeError: 'NoneType' object has no attribute 'strip'.
我该怎么办?帮助!还有我怎么去第二个div?当我执行 districtcontainers = souped.find_all("div",{"class":"announcement-block-link")
然后 districtcontainers[0].div.div
时,它给出 0 输出。如何解决?非常感谢您的关注和回答:)。
import urllib.request as uReq
from bs4 import BeautifulSoup as soup
url = uReq.urlopen("https://www.bazaraki.com/real-estate/houses-and-villas-rent/larnaka-district-larnaca/")
html = url.read()
souped = soup(html,"html.parser")
containers = souped.find_all("div",{"class":"announcement-block-text-container"})
districtcontainers = souped.find_all("div",{"class":"announcement-block__location"})
for container in containers:
for districtcontainer in districtcontainers:
title = container.a
price = container.p
district = districtcontainer
print("{}:\n Costs: \n District:{}".format(title.string.strip(),price.string.strip(),district.string.strip()))
首先,你最后的 print 语句只有两个 {} 但你在下面的格式调用中有三个变量,这只是一个错字,所以它不是问题的原因。
其次,您调用 souped 对象似乎为您的变量之一分配了值 None。只需检查页面的编码以确保在正确的位置找到您要查找的值。 BeautifulSoup 将 return None 如果您调用不存在的部分而不是引发错误。
因为看起来异常在 运行 时被引发,打印调用只是检查以确保您的三个调用 return 变量赋值的值。
至于进入页面中的第二个 div,您可能需要查看 next_sibling 方法调用。
我一直在尝试创建一个网络抓取工具,用于收集网站上某个对象的名称、价格和地区,但无法对其执行任何操作,因为它会引发错误:
AttributeError: 'NoneType' object has no attribute 'strip'.
我该怎么办?帮助!还有我怎么去第二个div?当我执行 districtcontainers = souped.find_all("div",{"class":"announcement-block-link")
然后 districtcontainers[0].div.div
时,它给出 0 输出。如何解决?非常感谢您的关注和回答:)。
import urllib.request as uReq
from bs4 import BeautifulSoup as soup
url = uReq.urlopen("https://www.bazaraki.com/real-estate/houses-and-villas-rent/larnaka-district-larnaca/")
html = url.read()
souped = soup(html,"html.parser")
containers = souped.find_all("div",{"class":"announcement-block-text-container"})
districtcontainers = souped.find_all("div",{"class":"announcement-block__location"})
for container in containers:
for districtcontainer in districtcontainers:
title = container.a
price = container.p
district = districtcontainer
print("{}:\n Costs: \n District:{}".format(title.string.strip(),price.string.strip(),district.string.strip()))
首先,你最后的 print 语句只有两个 {} 但你在下面的格式调用中有三个变量,这只是一个错字,所以它不是问题的原因。
其次,您调用 souped 对象似乎为您的变量之一分配了值 None。只需检查页面的编码以确保在正确的位置找到您要查找的值。 BeautifulSoup 将 return None 如果您调用不存在的部分而不是引发错误。
因为看起来异常在 运行 时被引发,打印调用只是检查以确保您的三个调用 return 变量赋值的值。
至于进入页面中的第二个 div,您可能需要查看 next_sibling 方法调用。