从beautifulsoup4中提取特定文本

2024-09-28 19:33:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用BS4和Python3.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>

Mi的目标是只得到div的第一部分,在这个例子中,是字符串“克劳迪亚肯佐”

这是我尝试使用的代码:

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

理论上我应该得到我想要的,但不…我得到的是输出:

claudiakenzo 33    Pasar el rato   En línea

我不想要其中的“33”、“帕萨尔拉托”或“恩利尼亚”部分。 我做错了什么?什么是正确的代码来提取我需要的? 不幸的是,有些用户名也包含数字,所以使用re是很复杂的…但我觉得一定有一种比使用re更简单的方法。你知道吗

如果有一个更简单的解决硒问题的方法,我也愿意尝试。 谢谢您!你知道吗


Tags: 代码divrelinkel用户名classen
2条回答

谢谢你。 发布后,我找到了一个解决方案:

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

这似乎能满足我的需要。你知道吗

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

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

相关问题 更多 >