2013-01-02 109 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