Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Beaufulsoup3中运行Beaufulsoup4命令?_Python_Beautifulsoup_Bs4 - Fatal编程技术网

Python 如何在Beaufulsoup3中运行Beaufulsoup4命令?

Python 如何在Beaufulsoup3中运行Beaufulsoup4命令?,python,beautifulsoup,bs4,Python,Beautifulsoup,Bs4,我正在尝试向一个更大的项目添加新代码,但我的代码使用BeauifulSoup4,而项目最初使用BeauIfulsoup3.2.1。如果我试图在代码上运行BeautifulSoup 3.2.1,则代码中存在的.parent命令会出错。我试图将项目升级到BeauifulSoup4,但在我不愿意篡改的项目的某个部分中,由于测试失败而出现错误。我的主管告诉我,安装同一个pip的两个不同版本是违反公司政策的。有没有办法将.parent命令添加到BeautifulSoup 3.2.1中 soup=Beau

我正在尝试向一个更大的项目添加新代码,但我的代码使用BeauifulSoup4,而项目最初使用BeauIfulsoup3.2.1。如果我试图在代码上运行BeautifulSoup 3.2.1,则代码中存在的
.parent
命令会出错。我试图将项目升级到BeauifulSoup4,但在我不愿意篡改的项目的某个部分中,由于测试失败而出现错误。我的主管告诉我,安装同一个pip的两个不同版本是违反公司政策的。有没有办法将
.parent
命令添加到BeautifulSoup 3.2.1中


soup=BeautifulSoup(response.content'html.parser')
na=汤。查找(id='pizza stores')
links=na.parent.parent.find_all('a')

当我尝试在BeautifulSoup3中运行此代码时,我得到一个

TypeError:“非类型”对象不可调用

我变了 美化组(response.content,'html.parser')
BeautifulSoup(response.content)
尝试在BeautifulSoup 3中运行时。

问题不在父级
中,而是在bs3中的
findAll

doc = '<html><body><div><div id="pizza stores"></div></div><a>link</a></body></html>'
sp = BeautifulSoup.BeautifulSoup(doc)
na = sp.find(id='pizza stores')
na.parent.parent.findAll('a')

Out[44]: [<a>link</a>]
doc='link'
sp=美化组。美化组(文档)
na=sp.find(id='pizza stores')
na.parent.parent.findAll('a'))
Out[44]:[link]

3中的哪个版本?我刚刚检查了
3.2.1
,父属性确实有效。项目也在使用
3.2.1
,但是。父属性不适用于我。问题可能不在父属性中,但事实上,您在文档中找不到na或其父属性。可能尝试使用一个非常简单的html进行复制。可能会包含有问题的response.content吗?如果我在BeautifulSoup4中运行此代码,则此代码非常有效,因此我不认为是这种情况,但如何在两个不同版本的BeautifulSoup之间构建
.parent
的代码。