2017-12-03 209 views
0

林在學校的一個項目工作是我顯示的當前價格比特幣,ETH也許再和IM網絡刮https://cryptowat.ch/但我不能找到用於存儲實時價格標籤。當我解析div標籤返回的價格,但我不是能夠把它隔離開,所以我可以在Python定位在HTML右邊的標記,而在蟒蛇webscraping

<div class="rankings-col__header__segment"><h2>BTC</h2><weak>usd </weak>10857.00</div> 

回答

0

顯示它從我的理解 - 你知道BTC字符串,可以用它來基地的定位。

所以,如果這將是XPath的,你可以使用和following-sibling::text():使用lxml.html

//h2[. = 'BTC']/following-sibling::text() 

例子:

from lxml.html import fromstring 

data = """<div class="rankings-col__header__segment"><h2>BTC</h2><weak>usd </weak>10857.00</div>""" 

root = fromstring(data) 
print(root.xpath("//h2[. = 'BTC']/following-sibling::text()")) 

打印['10857.00']


如果任何機會,你可以使用BeautifulSoup,這將是:

from bs4 import BeautifulSoup 


data = """<div class="rankings-col__header__segment"><h2>BTC</h2><weak>usd </weak>10857.00</div>""" 

soup = BeautifulSoup(data, "html.parser") 
print(soup.find("h2", string="BTC").find_next_sibling(text=True)) 
+0

@KushalS好,我只是想幫助定位元素的一部分。我懷疑你有一個更大的問題 - 實際上得到所需的HTML下載所需的元素。 – alecxe

+0

hi alec,能夠從上面使用以下內容拉取html行: 'containers = page_soup.findAll(「span」,{「class」:「price-right」}) container = containers [0]#此返回HTML 打印(容器)' 當我嘗試通過 '打印傳遞容器變量(container.find( 「H2」,串= 「BTC」)。find_next_sibling(文字= TRUE))' 我得到一個AttributeError:'NoneType'對象沒有'find_next_sibling' – KushalS

+0

@KushalS屬性,'span'和'price-right'來自哪裏。嘗試使用「湯」而不是「容器」。謝謝。 – alecxe