scrapy结合splash处理(ajax)分页抓取?

scrapy官方文档中的tutorial里面有一节讲的就是追踪链接,很简单,不用这么复杂scrapy结合splash处理(ajax)分页抓取?

Scrapy Tutorial----------------------------------------------------分析区--------------------------------------------------------------之前手机没仔细看,现在把代码贴上.首先我们来分析一下网页源代码:scrapy结合splash处理(ajax)分页抓取?

可以看到下一页的链接在源代码中,而且页面也很规律,只是最后页码变化,这个可以直接用正则表达式提取,或者时BeautifulSoup都可以,这也就回答了楼主如何找标签的问题,其实只要链接在源代码都可以提取出来.推荐的方法是列表解析式,写起来比较爽.其次我们注意到 href 这个属性中有js 的内容,这个其实是后面网页添加的,在下图的源代码中可以看到并没有这些内容,所以提取的时候不需要考虑.scrapy结合splash处理(ajax)分页抓取?

总结一下,其实我们遇到js的内容时:首先看看是否在源代码中有信息,这个就比较简单其次,我们可以去Network监视器中点击便签,监视其中的动态,下图就是监视器截图scrapy结合splash处理(ajax)分页抓取?

每当我们点击下一页,就会有一个文件产生,点击可以看到他的Request URL,这个也可以发现规律,然后我们点击Response,就是Response源代码,如下图scrapy结合splash处理(ajax)分页抓取?
【scrapy结合splash处理(ajax)分页抓取?】
现在我们有了请求链接,接下来的事情就简单了,直接上代码----------------------------------------------------代码区-------------------------------------------------------------# -*- coding: utf-8 -*-import scrapyfrom zhihuwenti.items import ZhihuwentiItemclass ZhihuSpider(scrapy.Spider): name = "zhihu" start_urls = ( \u0026#39;http://www.mps.gov.cn/n2254314/n2254457/n2254466/index_3497341_1.html\u0026#39;, \u0026#39;http://www.mps.gov.cn/n2254314/n2254457/n2254466/index_3497341_2.html\u0026#39;, \u0026#39;http://www.mps.gov.cn/n2254314/n2254457/n2254466/index_3497341_3.html\u0026#39;, \u0026#39;http://www.mps.gov.cn/n2254314/n2254457/n2254466/index_3497341_4.html\u0026#39;, \u0026#39;http://www.mps.gov.cn/n2254314/n2254457/n2254466/index_3497341_5.html\u0026#39;, \u0026#39;http://www.mps.gov.cn/n2254314/n2254457/n2254466/index_3497341_6.html\u0026#39;, ) def parse(self, response): for each in response.css(\u0026#39;dd\u0026#39;): item = ZhihuwentiItem() item = response.urljoin(each.css(\u0026#39;a::attr(href)\u0026#39;).extract_first()) item = each.css(\u0026#39;span::text\u0026#39;).extract() item = each.css(\u0026#39;a::text\u0026#39;).extract() yield item链接很少,就懒得写函数了,直接复制修改的结果图scrapy结合splash处理(ajax)分页抓取?


推荐阅读