一日一技:使用Scrapy的选择器来解析HTML

时间:2022-06-17
本文章向大家介绍一日一技:使用Scrapy的选择器来解析HTML,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在使用Scrapy抓取网站的时候,可能会遇到这样的情况,网站返回一个JSON字符串。在JSON字符串中又有一项,它的值是HTML。

如果不用Scrapy,我们一般使用lxml来解析HTML:

from lxml.html import fromstring

selector = fromstring(HTML)
name = selector.xpath('xxxx')

如果使用Scrapy解析网站直接返回的HTML,我们使用response即可:

def parse(self, response):
    name = response.xpath('xxx').extract()

那么现在问题来了。如果想使用Scrapy解析JSON返回的HTML,难道还有再单独用上lxml吗?显然不需要,可以使用Scrapy的Selector模块:

from scrapy.selector import Selector

selector = Selector(text='你获得的HTML')
name = selector.xpath('xxxx').extract()