from lxml import html
import requests
pagina = 'http://www.beleggen.nl/amx'
page = requests.get(pagina)
tree = html.fromstring(page.text)
aandeel = tree.xpath('//a[@title="Imtech"]/text()')
print aandeel
This part works, but I want to read multiple lines with different titles, is it possible to change the "Imtech" part to a variable?
Something like this, it obviously doesnt work, but where did I go wrong? Or is it not quite this easy?
FondsName = "Imtech"
aandeel = tree.xpath('//a[@title="%s"]/text()')%(FondsName)
print aandeel
You were almost right:
variabelen = [var1,var2,var3]
for var in variabelen:
aandeel = tree.xpath('//a[@title="%s"]/text()' % var)
Almost...
FondsName = "Imtech"
aandeel = tree.xpath('//a[@title="%s"]/text()'%FondsName)
print aandeel
XPath allows $variables
and lxml's .xpath()
method allows for supplying values for those variables as keyword arguments: .xpath('$variable', variable='my value')
Using your example, here's how you'd do it:
fonds_name = 'Imtech'
aandeel = tree.xpath('//a[@title="$title"]/text()', title=fonds_name)
print(aandeel)
See lmxl's docs for more info: http://lxml.de/xpathxslt.html#the-xpath-method
来源:https://stackoverflow.com/questions/26297410/how-to-cast-a-variable-in-xpath-python