繁体   English   中英

如何摆脱TypeError

[英]How do I get rid of the TypeError

我正在尝试构建网络抓取工具,但很奇怪的是,有时代码可以正常工作,有时却不能正常工作,而无需进行任何更改,这可能是网站问题,但是我应该如何修复它才能始终工作?

我已经尝试过多次重建31号线,但是不管我怎么做似乎都行不通。

# html parsing
page_soup = soup(page_html, "html.parser")

# grabs each appartment
containers = page_soup.findAll("div", {"class":"list-item-container"})

filename = "asunnot.csv"
f = open(filename, "w")

headers = "Kohdetta Vuokraa, Huoneistot, Talotyyppi ja Koko, Sijainti, Vapautuu, Vuokra"

f.write(headers)
count = 0
for page in range(1,10):
    my_url = "https://www.vuokraovi.com/vuokra-asunnot/Uusimaa?page={}&pageType="
    for container in containers:

        Vuokranantaja = container.findAll("div", {"class":"hidden-xs col-sm-3 col-4"})[0].img["alt"]

        Huoneistot = container.findAll("li", {"class":"semi-bold"})[1].text

        Talotyyppi = container.findAll("li", {"class":"semi-bold"})[0].text

        Sijainti = container.findAll("div", {"class":"hidden-xs col-sm-4 col-3"})[0].findAll("span", {"class":"address"})[0].text.strip().replace("\r", "").replace("\n", "").replace(" ", "").replace(",", ", ")

        Vapautuu = container.findAll("div", {"class":"hidden-xs col-sm-4 col-3"})[0].findAll("span", {"class":"showing-lease-container hidden-xs"})[0].li.text

        Vuokra = container.findAll("li", {"class":"rent"})[0].text.strip()

所需的输出是给我我要尝试抓取的东西,但是相反,它给了我这个:

Traceback (most recent call last):
  File "C:\Users\----\Desktop\vuokraovi.py", line 31, in <module>
    Vuokranantaja = container.findAll("div", {"class":"hidden-xs col-sm-3 col-4"})[0].img["alt"]
TypeError: 'NoneType' object is not subscriptable

有时,findAll方法没有什么可刮的。 检查文档中的异常处理: https : //docs.python.org/3/tutorial/errors.html#handling-exceptions

您收到的错误'NoneType' is not subscriptable ,表示您正尝试通过None上的索引来访问某些内容,例如, None[idx]

因此,在尝试访问container.findAll()结果上的项目[0]之前,应首先检查是否存在某些内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM