这是我的代码,使用find_all,但它适用于.find():
import requests
from BeautifulSoup import BeautifulSoup
r = requests.get(URL_DEFINED)
print r.status_code
soup = BeautifulSoup(r.text)
print soup.find_all('ul')
这就是我得到的:
Traceback (most recent call last):
File "scraper.py", line 19, in <module>
print soup.find_all('ul')
TypeError: 'NoneType' object is not callable
答案 0 :(得分:6)
看起来你正在使用BeautifulSoup版本3,它使用了略微不同的命名约定,例如:.findAll
,而BeautifulSoup 4标准化命名更像PEP8,例如:.find_all
(但是保持较旧的命名以实现向后兼容性)。请注意,soup('ul')
相当于在两者上找到所有。
要下载并安装,请使用pip install beautifulsoup4
。
然后将导入更改为:
from bs4 import BeautifulSoup
然后你很高兴。
答案 1 :(得分:1)
从这里下载BS4。 http://www.crummy.com/software/BeautifulSoup/#Download
安装它并将其导入代码的开头,如下所示:
import requests
from bs4 import BeautifulSoup
r = requests.get(URL_DEFINED)
print r.status_code
soup = BeautifulSoup(r.text)
print soup.find_all('ul')