Scrapy框架的学习(5.scarpy实现翻页爬虫,以及scrapy.Request的相关参数介绍)
2019-01-10 18:30
483 查看
1. 创建爬虫项目 : scrapy startporject tencent
然后进入到项目中: cd tencent
创建爬虫:scrapy genspider tencent_spider tencent.com
2. 在开始写代码之前,有些知识要知道
可以找到页面上的下一页的url地址,然后用解析函数去处理,解析函数可以是当前函数,类似于函数递归
通过在Request中指定callback参数来确定哪个解析函数来解析
3. 爬虫的代码 。 tencent_spider.py 爬取腾讯招聘的网站。
[code]# -*- coding: utf-8 -*- import scrapy class TencentSpiderSpider(scrapy.Spider): name = 'tencent_spider' allowed_domains = ['tencent.com'] start_urls = ['https://hr.tencent.com/position.php'] def parse(self, response): tr_list = response.xpath("//table[@class='tablelist']//tr")[1:-1] for tr in tr_list: item = {} item["position"] = tr.xpath("./td/a/text()").extract_first() item["category"] = tr.xpath(".//td[2]/text()").extract_first() item["date"] = tr.xpath(".//td[5]/text()").extract_first() yield item # 找到下一页的url地址 next_url = response.xpath("//a[@id='next']/@href").extract_first() if next_url != "javascript:;": next_url = "https://hr.tencent.com/"+next_url yield scrapy.Request( next_url, # callback 指定传入的url交给那个解析函数去处理 callback=self.parse )开启pipeline :
在pipelines.py里面写上打印,先不保存,看打印的结果
[code]class TencentPipeline(object): def process_item(self, item, spider): print(item) return item运行爬虫框架: scrapy crawl tencent_spider
可以看到结果不断打印出来:
可以在pipelines进行相应的保存代码的编写
4. calkback参数:当callback参数指定解析函数时,
自已可以在爬虫中定义解析函数
meta: 两个解析函数之间传递数据
例如:
[code] def parse(self,response): """其他的先省略,主要看下面的参数传递""" yield scrapy.Request( next_url, # callback 指定传入的url交给那个解析函数去处理 callback=self.parse, meta={"item": item} ) """如果还有一解析函数,数据就通过meta传递过来""" def parese1(self,response): """可以直接通过键取出里面的值""" response.meta["item"]dont_filter: 在Scrapy中默认请求是会去重的,请求过的url不会再请求
想要不去重的话 ,就设置为True
如果请求的页面上的数据会根据时间的变化会更新,这时候就要这个改变参数
相关文章推荐
- Scrapy框架的学习(9.Scrapy中的CrawlSpider类的作用以及使用,实现优化的翻页爬虫)
- Scrapy框架的学习(6.item介绍以及items的使用(提前定义好字段名))
- 爬虫相关-scrapy框架介绍
- Scrapy框架学习(五)----Request、Response介绍及模拟GitHub登录
- Scrapy框架学习(三)----基于Scrapy框架实现的简单爬虫案例
- Scrapy框架的学习(8.scrapy中settings.py里面配置说明以及怎样设置配置或者参数以及怎样使用)
- Scrapy爬虫框架学习之使用start_requests函数实现用户登录
- 关于Linux内核学习的误区以及相关书籍介绍
- yii2获取登录前的页面url地址--电脑和微信浏览器上的实现以及yii2相关源码的学习
- python爬虫框架scrapy学习笔记
- Python爬虫框架Scrapy 学习笔记 10.2 -------【实战】 抓取天猫某网店所有宝贝详情
- springframework(八)AOP的相关术语以及实现方式介绍
- Android应用程序窗口(Activity)实现框架简要介绍和学习计划
- Python爬虫框架Scrapy 学习笔记 7------- scrapy.Item源码剖析
- iOS 开发常用框架以及相关学习资料集合--不断更新
- scrapy爬虫框架学习入门教程及实例
- 爬虫 scrapy 框架学习 1. Scrapy框架业务逻辑的理解 + 简单爬虫案例示范
- python——爬虫学习——Scrapy爬虫框架入门-(6)
- 分布式网络爬虫关键技术分析与实现一网络爬虫相关知识介绍
- 用 Scrapy+Mariadb 实现汉典数据爬虫(二)——Scrapy简单介绍