【发布时间】:2014-05-09 06:04:48
【问题描述】:
我正在使用 BeautifulSoup 和 Python 进行网页抓取。
例如,我有以下html文本
<body>
<h5 class="h-bar">
<b class="caret"></b>
Model 11111
Set Item
</h5>
</body>
现在,我正在尝试查找文本中包含“Set Item”一词的任何标签。
我尝试了以下方法:
soup.find_all('h5', text="Set Item")
我希望得到这个:
<h5 class="h-bar">
<b class="caret"></b>
Model 11111
Set Item
</h5>
但是,这返回 None.. 我不知道为什么美丽的汤找不到匹配的.. 我应该怎么做才能检测到文本中带有“设置项目”的标签?
【问题讨论】:
-
因为
h5元素中有一个嵌套标签,您无法在text上匹配。我认为这是对我之前回答的问题的欺骗。 -
所以使用
for h5 in soup.find_all('h5', text=False): if 'Set Item' in h5.text:,或者使用自定义函数进行搜索:soup.find_all(lambda t: t.name == 'h5' and 'Set Item' in t.text):。 -
@MartijnPieters:你能链接到那个答案吗?这是谷歌搜索结果,我在搜索结果顶部附近看不到您的答案。如果它包含更完整的答案,那么能够从这里到达那里会很好
-
@BenKushigian:查看此帖中的重复横幅。
-
@MartijnPieters 哎呀,没看到第一名:D 谢谢
标签: python html regex web-scraping beautifulsoup