【发布时间】:2015-02-05 10:10:27
【问题描述】:
我目前正在用 Scrapy 编写一个网络爬虫,我想用一个 XPath 查询来获取每个 HTML 文档屏幕上显示的所有文本。
这是我正在使用的 HTML:
<body>
<div>
<h1>Main title</h1>
<div>
<script>var grandson;</script>
<p>Paragraph</p>
</div>
</div>
<script>var child;</script>
</body>
如您所见,在获取body 标签内的文本时,我想过滤一些script 标签
这是我的第一个 XPath 查询及其结果:
XPath: /body/*//text()Result: Main title / var grandson; / Paragraph / var child;
这不好,因为它还会获取 script 标记内的文本。
这是我的第二次尝试:
XPath: /body/*[not(self::script)]//text()Result: Main title / var grandson; / Paragraph
这里,最后一个script 标记(即body 的孩子)被过滤,但内部script 没有。
您将如何过滤所有script 标签?提前致谢。
【问题讨论】:
标签: python-2.7 xpath scrapy