how to cast a variable in xpath python

大兔子大兔子 提交于 2019-11-28 00:52:54

问题


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

回答1:


You were almost right:

variabelen = [var1,var2,var3]
for var in variabelen:
    aandeel = tree.xpath('//a[@title="%s"]/text()' % var)



回答2:


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




回答3:


Almost...

FondsName = "Imtech"
aandeel = tree.xpath('//a[@title="%s"]/text()'%FondsName)
print aandeel


来源:https://stackoverflow.com/questions/26297410/how-to-cast-a-variable-in-xpath-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!