2017-12-03 208 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