Scrapy:排除HTML正文中脚本标记内的内容

时间:2016-09-13 14:11:51

标签: python xpath scrapy

我目前正在使用以下代码提取body标签内的整个文本(不包括\ r \ n之类的空格):

full_text = response.xpath('normalize-space(/html/body)').extract()

问题是这是在正文中的脚本标记内拾取javascript。

您知道如何排除任何脚本标记中的内容吗?

我已经尝试过这样做,但它不起作用:

full_text = response.xpath('normalize-space(/html/body/*[not(self::script)])').extract()

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

您可以按照Scraping text without javascript code using scrapy

这个问题的答案
from w3lib.html import remove_tags, remove_tags_with_content

input = hxs.select('//div[@id="content"]').extract()
output = remove_tags(remove_tags_with_content(input, ('script', )))