在使用Scrapy抓取網(wǎng)站的時(shí)候,可能會(huì)遇到這樣的情況,網(wǎng)站返回一個(gè)JSON字符串。在JSON字符串中又有一項(xiàng),它的值是HTML。
如果不用Scrapy,我們一般使用lxml來解析HTML:
from lxml.html import fromstring
selector = fromstring(HTML)
name = selector.xpath('xxxx')
如果使用Scrapy解析網(wǎng)站直接返回的HTML,我們使用response即可:
def parse(self, response):
? ?name = response.xpath('xxx').extract()
那么現(xiàn)在問題來了。如果想使用Scrapy解析JSON返回的HTML,難道還有再單獨(dú)用上lxml嗎?顯然不需要,可以使用Scrapy的Selector模塊:
from scrapy.selector import Selector
selector = Selector(text='你獲得的HTML')
name = selector.xpath('xxxx').extract()
?
本文摘自 :https://blog.51cto.com/u