繁体   English   中英

使用beautifulsoup4从div中提取特定文本

[英]Extract specific text from a div with beautifulsoup4

我正在使用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>

Mi的目标是仅获得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”或“ Enlínea”部分。 我做错了什么,什么是提取我需要的正确代码? 不幸的是,某些用户名也包含数字,因此使用re十分复杂...但是我觉得必须比使用re更简单的方法来执行此操作。

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

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

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

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

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

这似乎可以为我提供所需的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM