[英]xpath select node texts and child nodes
我正在使用python scrapy從網站上抓取一些數據。
網站內容是這樣的
<html>
<div class="details">
<div class="a"> not needed</div>
content 1
<p>content 2</p>
<div>content 2</div>
<p>content 2</p>
<div>content 2</div>
<p>content 2</p>
<div class="b"> this is also not needed</div>
</div>
</html>
我需要獲取除類a,b的div外的完整html數據。
所以我的輸出將像這樣
<div class="details">
content 1
<p>content 2</p>
<div>content 2</div>
<p>content 2</p>
<div>content 2</div>
<p>content 2</p>
</div>
我該如何為此寫正確的xpath,或者應該為類'details','a','b'的div寫xpath並使用字符串操作刪除類為'a','b'的div?
請注意,這里的內容是“ details”類的div的文本,不是div的子級
你可以得到所有的孩子除了div
帶班a
或b
使用node()
和self::
語法:
//div[@class="details"]/node()[not(self::div[@class="a" or @class="b"])]
使用scrapy shell
演示:
$ scrapy shell index.html
>>> nodes = response.xpath('//div[@class="details"]/node()[not(self::div[@class="a" or @class="b"])]').extract()
>>> print ''.join(nodes)
content 1
<p>content 2</p>
<div>content 2</div>
<p>content 2</p>
<div>content 2</div>
<p>content 2</p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.