我目前正在尝试网络抓取。一切正常,直到我要缩小标签范围的部分为止。每当我输入以下代码时,就会出现上述错误。
我以前尝试过这种方法,但是它随着缩进的改变而起作用。但是这一次,它没有用。我试图通过其他方式来缩小范围,例如:按类。但是,这次都没有起作用。目前卡住了。
from bs4 import BeautifulSoup as soup
import requests
link = '*insert link*'
username = 'username123'
password = 'password123'
r = requests.get(link, auth=(username, password))
page = r.content
page_soup = soup(page, "html.parser")
div = page_soup.findAll("div", {"class":"Ovx(s)"})
for table in div:
tables = table.find("table")
tbody = tables.find("tbody")
container = tbody.findAll("tr", {"class":"Bgc($extraLightBlue):h"})
我也尝试过:
div = page_soup.findAll("div", {"class":"Ovx(s)"})
for table in div:
tables = table.find("table")
tbody = tables.find("tbody")
container = tbody.findAll("tr", {"class":"Bgc($extraLightBlue):h"})
就像我说的那样,这在过去通过调整容器变量的缩进来起作用,但是这次无济于事。我错过了什么吗?
答案 0 :(得分:0)
原因是您在循环后使用了container
变量的代码。同时
div = page_soup.findAll("div", {"class":"Ovx(s)"}
将为您提供一个空数组,这样我就不会进入循环的内部,因此不会定义container
。