繁体   English   中英

在Beautifulsoup中。找不到文本

[英]in Beautifulsoup .find can't find text

我必须从论坛下载所有帖子: http : //forum.ubuntu.cz/我用Python 2.7编写了代码

我遍历for周期后所有在表中(表代表<form name = "quickModForm" >每个柱处于<div class = "windowbg">class = "windowbg2" 每个帖子都包含<div class = "poster"><div class = "postarea"> 从“海报”中,提取作者的姓名,从“海报区”中,提取发布时间和帖子内容。

当我在此页面上运行代码http://forum.ubuntu.cz/index.php?topic=5279.0时,我成功阅读了第一篇文章,但没有阅读第二篇文章。

这是我的代码的一部分:

posts = urllib2.urlopen(link)
posts_soup = BeautifulSoup(posts.read()) 

form = prispevky_soup.find("form", {"name": "quickModForm"})
for divs in form.find_all("div", { "class": [ "windowbg", "windowbg2"]}):

    div = divs.find("div", {"class": "post_wrapper"})
    div_body = div.find("div", {"class": "postarea"})
    div_header = div.find("div", {"class": "poster"})

我发现在div_header中总是需要的所有信息,而在div_body中的某些帖子中是None,我无法找出为什么第一次成功迭代而第二次仅部分迭代的原因,因为div_header = divs.find("div", {"class": "poster"})函数通常和
div_body = divs.find("div", {"class": "postarea"})有时不是。 帖子的源代码非常相似。

感谢您的帮助,对不起我的英语。

使用get_text()方法获取html标签之间的文本,如下所示:

div = divs.find("div", {"class": "post_wrapper"}).get_text()
div_body = div.find("div", {"class": "postarea"}).get_text()
div_header = div.find("div", {"class": "poster"}).get_text()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM