首页 文章

BeautifulSoup没有得到完整的提取类

提问于
浏览
0

我正在尝试使用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”的类)时,它会打印None . 我知道该类存在于页面源代码中,因为我在自己的浏览器上查看,但由于某种原因,它没有在BeautifulSoup解析中找到它 . 有任何想法吗?

编辑:我还在下面添加了以查看会发生什么:

print soup.body.article

当我这样做时,它会在文章标签之间打印出一些信息,但不是全部 . 有可能当我使用find函数时,它会以某种方式跳过某些信息吗?我真的不确定为什么会出现这种情况,因为它会打印出普通汤的全部内容,但当我试图在其中找到细节时却不会 .

1 回答

  • 0

    BeautifulSoup 实例上的 find 方法(您的 soup 变量)与 Tag (您的 soup.body )上的 find 方法不同 .

    这个:

    soup.body.find("div",class_="content")
    

    只搜索身体标签的直接孩子 .

    如果您在 BeautifulSoup 实例上调用 find ,它会执行您想要的操作并搜索整个文档:

    soup.find("div",class_="content")
    

相关问题