将xpath的结果存储到变量中以帮助将来查询

时间:2013-10-11 09:09:52

标签: python xpath scrapy

我正在使用Scrapy抓取一些网站。我是Scrapy和XPath的新手。这个问题在XPpath上。

如问题标题中所述,我想将所选节点存储在变量中。我想进一步查询但不是整个HTML。我只想查询加载的变量。那么让我解释一下会发生什么

让示例html页面为:

<sample>
    <tag attribute="I NEED THIS">
        <common1>
            Area to be processed first 
        </common1>
        <common2>
            Area to be processed later
        </common2>  
    </tag>  

    <tag attribute="I DON'T NEED THIS">  
        <common1>
            Not interested in this part    
        </common1>
        <common2>
            Again not interested here
        </common2>
    </tag>
</sample>

现在我想用属性“我需要这个”处理“tag”

所以我这样做:

hxs = HtmlXPathSelector(response)

needed = hxs.select('//sample/tag[@attribute="I NEED THIS"]')

以后我执行以下操作时:

common1 = needed.select('//common1')

我得到整个文档中的common1标记元素,而不仅仅是来自所需的变量。我想在这里得到一些帮助。

1 个答案:

答案 0 :(得分:3)

您需要使用相对xpath:

.//common1

请参阅scrapy docs中的Working with relative XPaths