Lxml.html Parsing With XPath And Variables
I have this HTML snippet
Table of Contents
- )
What this returns is a boolean, which will be true if the condition
...='One'
is true for any of the nodes in the result set at the left side of the xpath expression. And that's why you get the error in your second example:True[0]
is not valid.You probalby want all nodes matching the expession, having
'One'
as text. The corresponding expression would be:test=html.xpath("//ul[@class='toc']/li[@class='level2']/div[@class='li']/a[text()='One']")
This returns a nodeset as result, or if you just need the url as a string:
test=html.xpath("//ul[@class='toc']/li[@class='level2']/div[@class='li']/a[text()='One']/@href") # returns: ['#link1']
Solution 2:
I tried mata's response, but for me didn't work:
div_name = 'foo' my_div = x.xpath(".//div[@id=%s]" %div_name)[0]
I found this on their website http://lxml.de/xpathxslt.html#the-xpath-method for those that might have the same problem :
div_name = 'foo' my_div = x.xpath(".//div[@id=$name]", name=div_name)[0]
Post a Comment for "Lxml.html Parsing With XPath And Variables"