2013-01-02 153 views
1

我有HTML與此類似:過濾兒童由家長使用XPath

<div> 
    <h4><a href="#">Don't Match Me</a></h4> 
    <a href="#">Match Me</a> 
    <a href="#">Match Me</a> 
    <a href="#">Match Me</a> 
</div> 

我怎麼會選擇所有的a元素不是h4裏面?我試過a[not(ancestor::h4)],但我真的不知道我在做什麼。

此外,作爲一個小問題,是否有一個Scrapy選擇器類實現PyQuery或BeautifulSoup?

+0

'一個[未(祖先:: H4)]'應該努力 - 究竟是什麼問題呢?它是否選擇了所有'a'元素,包括你不想要的元素,還是沒有選擇任何東西? –

回答

2

下面是你應該使用Scrapy選擇:

hxs.select('//a[not(ancestor::h4)]/text()').extract() 
+0

雖然比我簡單得多,謝謝。 – Blender