在使用Scrapy抓取网站的时候,可能会遇到这样的情况,网站返回一个JSON字符串。在JSON字符串中又有一项,它的值是HTML。
如果不用Scrapy,我们一般使用lxml来解析HTML:
代码语言:javascript复制from lxml.html import fromstring
selector = fromstring(HTML)
name = selector.xpath('xxxx')
如果使用Scrapy解析网站直接返回的HTML,我们使用response即可:
代码语言:javascript复制def parse(self, response):
name = response.xpath('xxx').extract()
那么现在问题来了。如果想使用Scrapy解析JSON返回的HTML,难道还有再单独用上lxml吗?显然不需要,可以使用Scrapy的Selector模块:
代码语言:javascript复制from scrapy.selector import Selector
selector = Selector(text='你获得的HTML')
name = selector.xpath('xxxx').extract()