我正在尝试构建网络抓取工具,但很奇怪的是,有时代码可以工作,有时却不能,如果不做任何更改,这可能是网站问题,但我如何解决它才能在一直吗?
我已经尝试过多次重建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
答案 0 :(得分:1)
有时候,findAll方法没有什么可刮的。检查文档中的异常处理:https://docs.python.org/3/tutorial/errors.html#handling-exceptions
答案 1 :(得分:0)
您收到的错误'NoneType' is not subscriptable
表示您正在尝试按None
上的索引访问某些内容,即类似None[idx]
的内容。
因此,在尝试访问[0]
结果上的项目container.findAll()
之前,您应该首先检查是否有东西。