繁体   English   中英

beautifulsoup find_all()类快捷方式不起作用

[英]beautifulsoup find_all() class shortcut doesn't work

我正在尝试使用class column查找所有p标签。

<p class="column">This is a column</p>
<p class="column">More columns heh</p>

我试着做:

soup.find_all(class_='column')

返回了[]

然后我尝试了:

soup.find_all(attrs={'class': 'column'})

并得到正确的结果。

这两个陈述不应该相同吗? 有什么不同?

(这是我对堆栈溢出的第一个答案,所以我有点紧张!)

正如其他人所说,这两个完全相同。 唯一的问题是您正在使用旧版本的Beautiful Soup。 因为它说这里

在没有class_快捷方式的较早版本的Beautiful Soup中,您可以使用上面提到的attrs技巧。 创建一个字典,其“ class”的值是您要搜索的字符串(或正则表达式,或其他)。

希望能有所帮助!

该声明是完全相同的,我无法重现您的问题:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('''<div>
... <p class="column">This is a column</p>
... <p class="column">More columns heh</p>
... </div>''')
>>> soup.find_all(class_='column')
[<p class="column">This is a column</p>, <p class="column">More columns heh</p>]
>>> import bs4
>>> bs4.__version__
'4.1.3'

请注意, class_参数是在版本4.1.2中引入的,因此请确保您使用的是BeautifulSoup的最新版本。 在“ 按CSS类搜索”部分中

从Beautiful Soup 4.1.2开始,您可以使用关键字参数class_通过CSS类进行搜索:

>>> from bs4 import BeautifulSoup as BS
>>> soup = BS('''<p class="column">This is a column</p>
<p class="column">More columns heh</p>''')
>>> list1 = soup.find_all(class_='column')
>>> list2 = soup.find_all(attrs={'class': 'column'})
>>> list1 == list2
True

没有区别 我不确定为什么它对您不起作用。 也许您的BeautifulSoup模块已经过时了? 我也无法重现您的问题。

我的保存情况就像您的帖子一样,我发现我的CentOS python版本是2.6.6,而BeautifulSoup 4.1.0他们在帮助文档中说:

“本文档中的示例在Python 2.7和Python 3.2中应以相同的方式工作。”

因此,根据此链接,我将python 2.6升级到2.7:

http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

升级完成后,汤变得很美。

Python beautifulsoup find_all 找不到<div class="“" ”></div><div id="text_translate"><p>我正在尝试使用 beautifulsoup 来查找 HTML 标签中的内容。 但是当标签是/ <strong>div class=" "</strong> /时,就不行了。 双引号中有<strong>空格</strong>时不能正确识别。</p><p> 这是我的代码:</p><pre> from bs4 import BeautifulSoup if __name__ == "__main__": soup = BeautifulSoup(open("1946.html", encoding='utf-8'), 'lxml') for k in (soup.find_all('div', class_=" ")): print(k)</pre><p> 谢谢你的帮助。</p></div>

[英]Python beautifulsoup find_all can‘t find <div class=“ ”>

暂无
暂无

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

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