【问题标题】:Extract specific text from a div with beautifulsoup4使用 beautifulsoup4 从 div 中提取特定文本
【发布时间】:2017-02-14 00:30:26
【问题描述】:

我正在使用 BS4 和 Python 3.5 解析网页。 尝试从如下所示的 div 中仅提取用户名(链接文本):

<div class="about"><a href="es_viewprofile.aspx?profile_id=110181766">claudiakenzo</a>&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp;Pasar el rato&nbsp;&nbsp;&nbsp;<font color="green">En línea</font></div>

我的目标是只获取 div 的第一部分,在本例中为字符串“claudiakenzo”

这是我正在尝试使用的代码:

            for link in soup.find_all("div", {'class': 'about'}):
            print(username = link.text)

理论上我应该得到我想要的,但是没有......我得到的是输出:

claudiakenzo 33    Pasar el rato   En línea

我不想要其中的“33”、“Pasar el Rato”或“En línea”部分。 我做错了什么以及提取我需要的正确代码是什么? 不幸的是,一些用户名也包含数字,所以使用 re 很复杂......但我觉得必须有比使用 re 更简单的方法来做到这一点。

PS- 如果 Selenium 的问题有更简单的解决方案,我也愿意尝试。 谢谢!

【问题讨论】:

    标签: python html css bs4


    【解决方案1】:

    花点时间阅读 BS4 文档。同时,这应该可以解决您的问题:

    for anchor in soup.select('div.about a'):
        print(anchor.text)
    

    【讨论】:

      【解决方案2】:

      谢谢。 发布后我找到了解决方案:

      username = link.text.split()[0]
      

      这似乎让我得到了我需要的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-14
        • 2020-04-19
        • 2020-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        相关资源
        最近更新 更多