在另一个标记之后获取标记内的文本

时间:2017-10-12 18:43:55

标签: python web-scraping tags

我正在用selenium和bs4抓取一些网站,我需要一些优雅的代码来执行以下操作。我在标签里面有一些文字。

<td><a href="javascript:Team(14654)"><span class="hp">1</span>SJK Seinajoen</a></td

如果我这样做

find('td').get_text()

我得到的是

1SJK Seinajoen

因为它获取所有文本,包括span标记中的内容。我的问题是,有没有办法让文本在pythonic方式的span标签之后的标签内?

我说pythonic因为我总是可以用结果字符串进行拆分,但这不是很优雅

2 个答案:

答案 0 :(得分:0)

这是关于这个问题的另一篇文章:

如果您使用的是bs4,则可以使用strings

" ".join(result.strings)

答案 1 :(得分:0)

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"