在lxml中工作时,我希望获得href
所有img
子项的title="Go to next page"
属性。
所以在下面的代码片段中:
<a class="noborder" href="StdResults.aspx">
<img src="arrowr.gif" title="Go to next page"></img>
</a>
我想让StdResults.aspx
回来。
我到目前为止:
next_link = doc.xpath("//a/img[@title='Go to next page']")
print next_link[0].attrib['href']
但next_link
是img
,而不是a
代码 - 我如何获得a
代码?
感谢。
答案 0 :(得分:2)
只需将a/img...
更改为a[img...]
:(括号类似于“这样”)
import lxml.html as lh
content='''<a class="noborder" href="StdResults.aspx">
<img src="arrowr.gif" title="Go to next page"></img>
</a>'''
doc=lh.fromstring(content)
for elt in doc.xpath("//a[img[@title='Go to next page']]"):
print(elt.attrib['href'])
# StdResults.aspx
或者,你可以走得更远并使用
"//a[img[@title='Go to next page']]/@href"
检索href属性的值。
答案 1 :(得分:0)
您还可以分别使用//a/img[@title='Go to next page']/parent::a
或//a/img[@title='Go to next page']/ancestor::a
作为XPath表达式来选择父节点或任意祖先。