4

我正在与 BeautifulSoup 合作,我发现了一个错误或错误。在我的示例中,我抓取了纽约时报的一个子版块网站......

import urllib2
from bs4 import BeautifulSoup
website = "http://www.nytimes.com/pages/politics/index.html"
data = BeautifulSoup(urllib2.urlopen(website).read())
print data

当我运行代码时,我会返回 head 标签及其里面的内容。但是,它不会抓取正文标签内的内容。如果我将网站 url 更改为http://www.nytimes.com然后 BS 返回完整页面源。这是怎么回事,为什么我爬的时候没有得到身体标签http://www.nytimes.com/pages/politics/index.html

4

1 回答 1

1

这不是 BeautifulSoup 中的错误。问题实际上在于 bs4 使用内置的 HTMLParser,它对格式错误的 HTML 不是很宽容,并且W3C 标记验证服务显示 HTML 确实格式错误,并且几乎没有未封闭、杂散和放错位置的 TAGS 导致 HTMLParser 和随后的 BeautifulSoup 停止突然解析。

此问题已在针对 BeautifulSoup 提交的以下错误中进行了解释

BS4 在格式错误的标签后停止解析

于 2013-01-14T07:29:53.027 回答