【问题标题】:BeautifulSoup - Extract Text Inside Tags using "text="BeautifulSoup - 使用“text =”提取标签内的文本
【发布时间】:2016-06-05 01:39:44
【问题描述】:

正在阅读“Web Scraping with Python”一书,它很不错,但有时(令人沮丧地)掩盖了读者需要玩弄的代码,而不显示输出或提及相关限制。

我花了 4 个小时试图找出原因:

fullText.findAll('a', text="bees")

返回一个关于以下标签的空字符串:

<a class="search">Why are the bees in my soup bees are bad</a>

当这本书似乎暗示它会计算“蜜蜂”出现在我的 bs4.BeautifulSoup 页面上的次数时。只有在阅读 Stack 帖子和摆弄代码 4 小时后,我才发现我必须在 text="" 中键入 完整的一段文本 才能获得所需的输出。那就是我不得不把它改成:

fullText.findAll('a', text="Why are the bees in my soup bees are bad")

.

.

.

.

无论如何,我只想问一个两部分的问题: 如果我使用以下命令输出了所有 标签:

fullText.findAll('strong')
  1. [不转换为字符串] 有没有办法使用 findAll 或其他函数成功搜索以查看蜜蜂是否作为标签内文本的一部分出现没有在标签内搜索全文
  2. findAll 是否存在 BeautifulSoup 或其他函数,它将从输出中去除标签定义,并且只显示标签内的全文

我很清楚第二个问题之前已经被问过。我尝试过的一切都没有真正奏效。如果您可以包含您的输出,那就太好了,这样我就知道我应该期待什么,并且可以在遇到问题时比较结果。

【问题讨论】:

    标签: search beautifulsoup extract partial findall


    【解决方案1】:
    1. soup.find_all('strong', string=re.compile("bee"))

    这将返回所有strong 标记的列表,其中"bee" 作为文本的一部分。它使用正则表达式。

    1. string 属性会这样做。

      soup.find_all('strong')[0].string

    soup.find_all('strong') 将返回所有强标签的列表,因此我将其编入索引以访问特定标签。

    【讨论】:

    • 非常感谢湿婆。工作和第二个工作都比我提出的问题更好。 .我尝试阅读和试验 python.org 文档中的“re”,包括之前和之后的“compile”,结果完全迷失了。我希望它包括“输出”,所以我知道我需要寻找什么。 . YouTube 视频也没有太大帮助,但我不会占用你更多的时间,我会四处阅读,并且会在我为其他同样困惑的用户确定它时发布它的作用的解释。真的,非常感谢你。你救了我一个巨大的心痛。
    • 如果这为您解决了问题,那么您可以接受答案。欢迎您。
    • 说实话,一开始我并不知道复选标记是什么意思。答案肯定被接受,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 2016-03-27
    • 2017-12-05
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多