如何在XPath Python中转换变量类型

7
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”部分更改为变量?

像这样一些东西,显然它不起作用,但我错在哪里了?或者说它并不是那么容易实现?

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

10

你几乎是正确的:

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

这正是我在寻找的,我猜它也可以与字典一起使用吧? - zazga
你是说应该使用字典而不是列表吗? - Vincent Beltman
是的,现在我已经把它搞定了,全靠你和一点点的即兴创作。 - zazga

7
XPath允许使用$variables,lxml的.xpath()方法可以通过关键字参数提供这些变量的值:.xpath('$variable', variable='my value')
使用您的示例,以下是如何执行此操作:
fonds_name = 'Imtech'
aandeel = tree.xpath('//a[@title="$title"]/text()', title=fonds_name)
print(aandeel)

请查看lmxl的文档以获取更多信息:http://lxml.de/xpathxslt.html#the-xpath-method

4

Almost...

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接