Scrapy框架使用

1. 在window上使用Scrapy框架想要安装的模块
1: pip3 install wheel
2:下载twisted,下载完成后,进入下载目录,执行 pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
3: pip3 install pywin32
4: pip3 install scrapy

2.使用scrapy:
第一步:创建一个工程:scrapy starproject 工程名
第二部:进入工程目录 cd 工程名
第三步:创建爬虫文件 scrapy genspider 爬虫文件名 www.xxx.com
第四步:编写爬虫
第五步:执行爬虫文件scrapy crawl 爬虫文件名

3.爬虫文件的编写
- 定义好了一个类,该类的父类是Spider,Spider是scrapy所有类的父类
- 类中定义好了三个属性和一个方法
- name:爬虫文件的名称
- start_urls:起始url列表
- 作用:可以对列表中的url进行get请求的发送
- allow_demains:允许的域名。
- parse(self,response):
- 将起始url列表中的url请求成功后,response就是获取的响应对象,
在该方法中负责实现数据解析
- scrapy工程默认是遵从rotbos协议的,需要在配置文件中进行操作:
- 不遵从robots协议
- 指定日志等级
- LOG_LEVEL = 'ERROR'

第四:数据解析:
利用response.xpath()进行数据解析,其中注意:提取标签内容时,返回的不是字符串,而是Selector对象,字符串是存储在该对象中的。
需要调用extract()或者extract_first()将Selector对象中的字符串取出。

第五步:持久化存储
(1).在Item类中定义相关属性 eg: name = scrapy.Field()
(2).在爬虫文件中的数据写入实例化的Item对象中 eg: item = DianyingItem() item['name'] = name
(3)在爬虫类里面把Item对象提交给管道 eg: yield item
(4)在管道文件中接受Item对象,且对其进行任意形式的持久化存储操作,如果想让两个管道类都接受到item,并且实行持久化存储,就要在每个每个类的process_item()中return item
(5)在配置中打开管道

第六步:手动发起请求:
get请求:yield scrapy.Request(url,callback)
post请求: yield scrapy.FormRequest(url,formdata,callback)

实例:利用Scrapy框架对4567电影爬取:https://www.cnblogs.com/KingOfCattle/p/13038892.html
posted @ 2020-06-03 17:26  大魔头的取经故事  阅读(168)  评论(0编辑  收藏  举报