如何在BeauifulSoup 3中运行BeaufiulSoup4命令?

时间:2017-07-25 20:17:08

标签: python beautifulsoup bs4

我尝试将新代码添加到更大的项目中,但我的代码使用BeauifulSoup4,而该项目最初使用的是BeautifulSoup 3.2.1。如果我尝试在我的代码上运行BeautifulSoup 3.2.1,我的代码中存在.parent命令的错误。我尝试将项目升级到BeauifulSoup4,但是我在项目的一部分中得到了错误的测试错误,我不想篡改。我的主管告诉我,违反公司政策要安装两个不同版本的同一个点子。有没有办法将.parent命令添加到BeautifulSoup 3.2.1?

soup = BeautifulSoup(response.content, 'html.parser') na = soup.find(id='pizza stores') links = na.parent.parent.find_all('a')

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

TypeError: 'NoneType' object is not callable

我改变了 BeautifulSoup(response.content, 'html.parser')来 尝试在BeautifulSoup 3中运行时BeautifulSoup(response.content)

1 个答案:

答案 0 :(得分:0)

问题不在parent中,在find_all中,在{b} 3中应该是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>]