属性总是非

2024-06-16 10:04:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

AttributeError: 'NoneType' object has no attribute 'strip'.

我该怎么办?救命啊!我怎么去第二分队?当我做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()))

Tags: importdivstringcontainerhtmlasallfind
1条回答
网友
1楼 · 发布于 2024-06-16 10:04:19

首先,上一个print语句只有两个{},但是在下面的格式调用中有三个变量,这只是一个输入错误,所以不是问题的原因。你知道吗

第二,调用souped对象时,其中一个变量似乎被赋值为None。只需检查页面的编码,以确保您要查找的值位于正确的位置。如果调用不存在的节而不是引发错误,则BeautifulSoup将返回None。你知道吗

因为运行print调用时似乎引发了异常,所以只需检查以确保您的三个调用为变量赋值返回值。你知道吗

至于访问页面中的第二个div,您可能需要签出下一个\u同级方法调用。你知道吗

相关问题 更多 >