如何在xpath中输入变量python

问题描述:

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 

这部分工作,但我想阅读多行不同标题,是否有可能将“Imtech”部分更改为变量?如何在xpath中输入变量python

就像这样,它显然不起作用,但我哪里出错了?或者是不是很容易?

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

你是差不多吧:

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

这就是我一直在寻找,我相信它也将与字典的工作? – zazga 2014-10-10 10:51:36

+0

你的意思是一个字典而不是一个列表? – 2014-10-10 11:27:15

+0

是的,我现在正在工作,都感谢你和一些即兴创作的神奇 – zazga 2014-10-14 11:12:41

几乎...

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

,作品像一个魅力 – zazga 2014-10-10 10:50:55

XPath允许$variables和LXML的.xpath()方法允许这些变量作为关键字参数提供值:.xpath('$variable', variable='my value')

使用你的exa mple,这里是你会怎么做:

fonds_name = 'Imtech' 
aandeel = tree.xpath('//a[@title="$title"]/text()', title=fonds_name) 
print(aandeel) 

见lmxl的文档的更多信息:http://lxml.de/xpathxslt.html#the-xpath-method