2017-10-12 176 views
-1

我在用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的,因为我一直都用得到的字符串分割,但不是很优雅

+0

什么是你刮的页面? – mentalita

+0

您对上面粘贴的元素有什么期待?是1 SJK Seinajoen还是SJK Seinajoen?如果你需要的第二个,那么我想你已经回答了你的问题。 – SIM

+0

我希望获得不带'span'标签的团队名称 – puppet

回答

0

这是另一篇文章对这个问题:

如果您正在使用BS4可以使用strings

" ".join(result.strings) 
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"