无法从python中的html页面中提取文本

时间:2016-12-20 14:16:55

标签: python beautifulsoup html-parsing

我对网络报废很新。我读了关于BeautifulSoup并尝试使用它。但我无法提取给定类名“company-desc-and-sort-container”的文本。我甚至无法从html页面中提取标题。这是我试过的代码:

from BeautifulSoup import BeautifulSoup
import requests

url= 'http://fortune.com/best-companies/'    
r = requests.get(url)

soup = BeautifulSoup(r.text)

#print soup.prettify()[0:1000]
print soup.find_all("title")

letters = soup.find_all("div", class_="company-desc-and-sort-container")

我收到以下错误:

 print soup.find_all("title")
TypeError: 'NoneType' object is not callable

2 个答案:

答案 0 :(得分:1)

您正在使用['tos', 'lat'] 版本3 ,这不仅会被维护,而且也没有BeautifulSoup方法。并且,由于点符号用作find_all()的快捷方式,find()尝试使用" find_all"来查找元素。标记名称,其结果为BeautifulSoup。然后,它将执行None,结果为:

  

TypeError:' NoneType'对象不可调用

升级到None("title")版本4,替换:

BeautifulSoup

使用:

from BeautifulSoup import BeautifulSoup

确保已安装from bs4 import BeautifulSoup 软件包:

beautifulsoup4

答案 1 :(得分:0)

soup.find_all("title")

找不到标题标签并返回"无"。还有" find_all"如果找到某些内容,方法将返回一个列表,您将收到不同的错误。您无法打印列表。只使用" find"方法。那将是第一个标题标签。

然后html页面甚至有标题标签?搜索,仅在不打印时打印。