lxml 中的 xpath 使用问题
html_doc = etree.HTML(url)
elm = html_doc.xpath()[0]
定位到如下article元素,想再使用elm.xpath(//h2/a[@rel='bookmark'])在当前元素内查找其他元素,但实际返回的是整个html_doc里所有符合条件的元素。
问1:调用Element的xpath,仅在被调用的Element中查询,这个想法是错误的?为什么
问2:如何实现利用指定Element对象,使用xpath语法查询包含在对象内部的元素?
谢谢~
更新
+++++1+++++
使用深拷贝:elm2 = copy.deepcopy(elm)
再调用elm2.xpath就只返回elm里面的元素了
所以Element.xpath()返回的列表中的Element有什么特性吗?
<article id="post-31157" class="post-31157 post type-post status-publish format-standard has-post-thumbnail hentry category-java post-list clearfix">
<div class="entry-body">
<header class="entry-header">
<h2 class="entry-title"><a href="http://www.allitebooks.com/grails-in-action/" rel="bookmark">Grails in Action</a></h2>
<!-- END .entry-title -->
<div class="entry-meta">
<span class="author vcard">
<h5 class="entry-author">By: <a href="http://www.allitebooks.com/author/glen-smith/" rel="tag">Glen Smith</a>, <a href="http://www.allitebooks.com/author/peter-ledbrook/" rel="tag">Peter Ledbrook</a></h5>
</span>
</div>
<!-- END .entry-meta -->
</header>
<!-- END .entry-header -->
</div>
<!-- END .entry-body -->
</article>
这是一个bug
elm.xpath (’.//h2/a[@rel="bookmark"]')