正在阅读“使用Python进行Web Scraping”这本书并且它很不错,但有时(令人沮丧地)掩盖了读者需要在不显示输出但也没有提及相关限制的情况下使用的代码。
我花了4个小时试图找出原因:
fullText.findAll('a', text="bees")
返回一个关于以下标记的空字符串:
<a class="search">Why are the bees in my soup bees are bad</a>
当这本书似乎暗示它会计算在我的bs4.BeautifulSoup页面上发生了多少次“蜜蜂”。只有在阅读了4个小时的帖子和摆弄代码后,我发现我必须在text =“”中键入完整的文本以获得所需的输出。那是我必须将其更改为:
fullText.findAll('a', text="Why are the bees in my soup bees are bad")
无论如何,我想问的只是一个2部分的问题: 如果我输出了所有的&lt;强大&gt;标签使用以下内容:
fullText.findAll('strong')
我很清楚之前已经问过 第二个问题 。我没有尝试过真的有效。如果你可以包含你的输出,这将是很好的,这样我就知道我应该期待什么,并且如果我遇到问题可以比较结果。
答案 0 :(得分:2)
soup.find_all('strong', string=re.compile("bee"))
这将返回包含strong
的所有"bee"
代码的列表,作为文本的一部分。它使用正则表达式。
string
属性会这样做。
soup.find_all('strong')[0].string
soup.find_all('strong')
将返回所有强标记的列表,因此我将其编入索引以访问特定标记。