2017-10-12 217 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"