在标签内获取文本,在另一个标签之后
问题描述:
我在用selenium和bs4抓取一些网页,我需要一些优雅的代码来完成以下操作。我在标签内有一些文字。在标签内获取文本,在另一个标签之后
<td><a href="javascript:Team(14654)"><span class="hp">1</span>SJK Seinajoen</a></td
如果我这样做
find('td').get_text()
我得到的是
1SJK Seinajoen
,因为它得到的所有文字,包括什么是span标签。我的问题是,有没有什么办法可以在python的span标签之后的标签内获得文本?
我说Python的,因为我一直都用得到的字符串分割,但不是很优雅
答
这是另一篇文章对这个问题:
如果您正在使用BS4可以使用strings
:
" ".join(result.strings)
答
在lxml.html您可以使用下面的代码来获得所需的输出:
from lxml import html
source = """<td><a href="javascript:Team(14654)"><span class="hp">1</span>SJK Seinajoen</a></td>"""
html = html.fromstring(source) # pass web page HTML source code as "source" var
print(html.xpath("//a/text()")[0])
输出
"SJK Seinajoen"
什么是你刮的页面? – mentalita
您对上面粘贴的元素有什么期待?是1 SJK Seinajoen还是SJK Seinajoen?如果你需要的第二个,那么我想你已经回答了你的问题。 – SIM
我希望获得不带'span'标签的团队名称 – puppet