学习目标:
python学习二十六—简单数据抓取六
学习内容:
- 学习使用scrapy
1、安装scrapy环境并创建爬虫项目
2、以顶点小说 为例利用scrapy进行爬取
3、scrapy相关的注意事项
1、安装scrapy环境并创建爬虫项目
- windows电脑的cmd中输入canda install scrapy安装scrapy环境
- scrapy爬虫为异步,在爬取的过程中就可能会出现显示顺序不一致
- cmd到项目需要保存的位置,输入scrapy startproject 项目名创建项目
- cd到项目下,scrapy genspider app名+爬取的 址 (项目下 站的一段 址作为app的名字)
- 运行scrapy是在cdm中输入:scrapy crawl 爬虫app名,点回车运行某个爬虫
2、以顶点小说 为例利用scrapy进行爬取
1、根据项目创建流程创建出顶点项目
- 在app23us中,编写主要的代码
- 同时item的代码为:
3、在__init.py__文件的request中存在dont_filter=False,为去重
-
注意它的作用,可能会因为去重造成相似的数据丢失
-
可以在request请求 页显示内容时引用dont_filter,可以为true或者false
4、为了运行的方便可以创建一个启动py文件
5、存入item购物车的数据需要到pipelines.py文件中取出利用
3、scrapy相关的注意事项
1、在scrapy运行时,应该注意setting文件中相关的内容要打开注解
- pipelines注解,如果不打开,pipeline将不能正常取出数据
- 守约文件,需关闭,不然会影响爬取数据的完整性
2、向项目中添加header头
- 在app中的request中直接添加相关header头
- 在setting中找到header头的位置,直接添加全局的header头,所有请求将使用该header头
- 在在setting中找到header头的位置,添加全局的公共header头,然后在需要添加特殊header头的请求添加其他部分header头(爬虫执行时会先执行代码中的header头,再执行setting中的header头)
- 在middlewares.py文件中,找到process_request方法,在该方法中可以编写代码判断不同的爬虫名,采用不同的header头
3、middlewares.py文件中的process_request方法和process_response方法
- process_request方法:
返回response时,不经过downloader,直接返回到spiders
返回request时,就会进入一个无限循环
返回IgnoreRequest时,就是转到process_exception方法,重新编写方法
- process_response方法
代理IP在此方法中添加
返回request时,将请求任务重新调度申请链接
返回response时,将下载器下载的内容正常放回送
4、将scrapy爬取的数据保存为json数据
- 在转json之前,数据应该先存入到item购物车
- 在terminal输入命令进行转json:scrapy crawl 23us(爬虫app名) -o 23us.json(保存的json文件名)
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树 络爬虫Scrapy框架211389 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!