这是我参与「第四届青训营 」笔记创作活动的第8天
scrapy框架:
1.安装scrapy
命令:sudo apt-get install scrapy 或者:pip/pip3 install scrapy
2.scrapy项目开发流程
- 创建项目:
scrapy startproject mySpider
- 生成一个爬虫:
scrapy genspider itcast itcast.cn
- 提取数据: 根据网站结构在spider中实现数据采集相关内容
- 保存数据:
使用pipeline进行数据后续处理和保存
创建项目:
创建scrapy项目的命令:(在终端输入)
scrapy startproject <项目名字>
示例:
scrapy startproject myspider
然后打开pycharm,生成的目录和文件结果如下:
创建爬虫:
命令:在项目路径下执行:
scrapy genspider <爬虫名字> <允许爬取的域名>
爬虫名字:作为爬虫运行时的参数
允许爬取的域名:对于爬虫设置的爬取范围,设置之后用于过滤要爬取的URL,如果爬取的URL与允许的域不通则被过滤掉
示例:
cd myspider #切换到myspider项目路径下
scrapy genspider itcast itcast.cn
三个参数:
name
allowed_domains
start_urls:设置起始的URL,我们只需要设置就好,通常会被自动创建成请求发送,然后被送到parse方法中进行解析
方法:parse方法:解析方法,通常用于起始URL对应响应的解析
运行scrapy:命令:在项目目录下执行(终端)
scrapy crawl <爬虫名字>
3.Scrapy运行流程:
- 引擎从调度器中取出一个URL用于接下来的抓取;
- 引擎把URL封装成一个请求(request)传给下载器;
- 下载器把资源下载下来,并封装成一个响应(response);
- 爬虫解析响应;
- 解析出的是项目,则交给项目管道进行进一步的处理;
- 解析出的是链接URL,则把URL交给调度器等待下一步的抓取。
4.Scrapy项目下都有些什么
scrapy.cfg: 项目的配置文件
tutorial/: 该项目的python模块。在此放入代码(核心)
tutorial/items.py: 项目中的item文件.(这是创建容器的地方,爬取的信息分别放到不同容器里)
tutorial/pipelines.py: 项目中的pipelines文件.
tutorial/settings.py: 项目的设置文件.(我用到的设置一下基础参数,比如加个文件头,设置一个编码)
tutorial/spiders/: 放置spider代码的目录. (放爬虫的地方)
5.parse方法
这个方法有两个作用
1.负责解析start_url下载的Response 对象,根据item提取数据(解析item数据的前提是parse里全部requests请求都被加入了爬取队列)
2.如果有新的url则加入爬取队列,负责进一步处理,URL的Request 对象
个人总结:在完成项目的过程中,我主要学习了scrapy框架,掌握了一些基本内容