我目前正在尝试网页抓取。一切都很好,直到我试图缩小要刮取的标签的部分。每当我输入下面的代码时,就会出现上面的错误。
我以前尝试过这个,但是,它与缩进的移动一起工作。但这一次却没有成功。我尝试通过其他方式缩小范围,例如:按类(class)。然而,这一次却没有奏效。目前陷入困境。
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"})
就像我说的,过去可以通过调整容器变量的缩进来实现,但这次没有效果。我错过了什么吗?
最佳答案
原因是您的循环后面有使用 container
变量的代码。同时
div = page_soup.findAll("div", {"class":"Ovx(s)"}
会给你一个空数组,这样我就不会进入循环的内部部分,因此容器
不会被定义。
关于python - NameError:名称 'container' 未定义 Python Webscraping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53998571/