XPath

2017-09-01 11 views
1

Der Versuch, Preisdaten auf dieser Seite zu kratzen: https://www.bloomberg.com/quote/EQUPEUI:LNXPath

Unter Verwendung der folgenden XPATH:/html/body [@ class = 'default-Layout Märkte Schnitt-Front']/div [@ class = 'Container']/main [@ id = 'Inhalt']/div/div [@ Klasse = 'Zitat-Seiten-Modul']/div [@ Klasse = 'Basis-Zitat']/div/div [ @ class = 'Preis-Container hoch']/div [@ Klasse = 'Preis']

Nicht funktioniert ... Ich stecke fest und würde Ihre Hilfe wirklich zu schätzen wissen.

Antwort

0

Sie sind so sehr in der Nähe. Sie fehlen nur /text() am Ende Ihres XPath-Ausdrucks.

/html/body[@class='default-layout markets-section-front']/div[@class='container']/main[@id='content']/div/div[@class='quote-page module']/div[@class='basic-quote']/div/div[@class='price-container up']/div[@class='price']/text() 

Dies funktioniert in Python:

from lxml import html 
import requests 

req = requests.get('https://www.bloomberg.com/quote/EQUPEUI:LN') 
tree = html.fromstring(req.content) 

price = tree.xpath("//div[@class='price-container up']/div[@class='price']/text()")[0] 

print "The price is:", price 

Hinweis Sie stark den XPath-Ausdruck von nicht ausgehend von der Wurzel HTML-Tag vereinfachen kann.

+1

Super! Vielen Dank. – Mordko

0

Sie auch

//main[@id='content']//div[@class='price'] 

Suchen Sie das Element mit über XPath und verwenden getText folgenden relativen XPath verwenden können() -Methode Text des Elements zu erhalten.