我正在使用BS4和Python 3.5解析网页。 尝试仅从div中提取用户名(链接文本),如下所示:
<div class="about"><a href="es_viewprofile.aspx?profile_id=110181766">claudiakenzo</a> 33 Pasar el rato <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的问题,我也愿意尝试。 谢谢!
答案 0 :(得分:0)
花一些时间阅读BS4文档。同时这应该可以解决你的问题:
for anchor in soup.select('div.about a'):
print(anchor.text)
答案 1 :(得分:0)
谢谢。 发布后我发现了一个解决方案:
username = link.text.split()[0]
这似乎让我得到了我需要的东西。