gpt4 book ai didi

python - 属性始终为 None

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:59 27 4
gpt4 key购买 nike

我一直在尝试创建一个网络抓取工具,用于收集网站上某个对象的名称、价格和地区,但无法对其执行任何操作,因为它会引发错误:

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

最佳答案

首先,您的最后一个打印语句只有两个 {},但在以下格式调用中有三个变量,这只是一个拼写错误,因此不是问题的原因。

其次,看起来您的变量之一通过调用 souped 对象而被分配了 None 值。只需检查页面的编码即可确保您要查找的值位于正确的位置。如果您调用不存在的部分,BeautifulSoup 将返回 None,而不是引发错误。

由于看起来在运行打印调用时引发了异常,因此只需检查以确保您的三个调用返回变量分配的值。

至于访问页面中的第二个 div,您可能需要查看 next_sibling 方法调用。

关于python - 属性始终为 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45284763/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com