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

2019-01-09 15:57:08 浏览数 (1)

在使用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()

0 人点赞