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>
讨论数量: 2

这是一个bug

5年前 评论

elm.xpath (’.//h2/a[@rel="bookmark"]')

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!