2017-02-14 77 views
0

我解析与BS4和Python 3.5的网页。 试图只提取从一个div,看起来像这样的用户名(链接文本):从div中提取特定文本与beautifulsoup4

<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”或“Enlínea”部分。 我在做什么错,什么是正确的代码来提取我所需要的? 不幸的是,一些用户名还包含数字,因此使用re很复杂......但我觉得必须有比使用re更简单的方法来完成此操作。

PS-如果硒问题更容易解决,我也愿意尝试。 谢谢!

回答

0

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

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

谢谢。 张贴后,我找到了一个解决方案:

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

这似乎让我我需要什么。