我正在尝试使用BeautifulSoup从craigslist中提取数据。作为初步测试,我写了以下内容:
import urllib2
from bs4 import BeautifulSoup, NavigableString
link = 'http://boston.craigslist.org/search/jjj/index100.html'
print link
soup = BeautifulSoup(urllib2.urlopen(link).read())
print soup
x=soup.body.find("div",class_="content")
print x
打印汤后,我可以看到整个网页。但是,在尝试查找更具体的内容时,例如名为" content"的类,它会打印无。我知道该类存在于页面源代码中,因为我在自己的浏览器上查看,但由于某种原因,它没有在BeautifulSoup解析中找到它。有什么想法吗?
编辑: 我还在下面添加了以查看会发生什么:
print soup.body.article
当我这样做时,会在文章标签之间打印出一些信息,但不是全部。有可能当我使用find函数时,它会以某种方式跳过某些信息吗?我真的不确定为什么会出现这种情况,因为它会打印出普通汤的全部内容,但当我试图在其中找到详细信息时却不会。
答案 0 :(得分:0)
find
实例上的BeautifulSoup
方法(您的soup
变量)与find
上的Tag
方法不同(您的{{ 1}})。
此:
soup.body
仅搜索body标签的直接子项。
如果您在soup.body.find("div",class_="content")
实例上调用find
,它会执行您想要的操作并搜索整个文档:
BeautifulSoup