1.常用命令
scrapy startproject 项目名称
:在当前目录下创建一个指定名称的文件夹,里面放置了scrapy框架除爬虫文件以外的所有文件:
创建好的文件夹内容如图:
scrapy genspider 爬虫文件名 网址
:创建爬虫文件,这个网址可以先随便填,之后在爬虫文件中修改。PS:一定要先进入刚刚创建的那个项目文件夹中!!!!
scrapy crawl 爬虫文件名
:执行爬虫,开始爬取数据
2.scrapy五大组件
先解释一下每个步骤是干什么的:
①:spider将start_urls这个列表提交给engine
②:engine将start_urls提交给scheduler(调度器),scheduler对start_urls中的url进行去重、排队列
③:scheduler将处理好的start_urls返回给engine
④:engine将处理好的start_urls提交给downloader
⑤:Downloader对每个url向Internet发起请求(request)
⑥:Internet将请求结果(response)返回给Downloader
⑦:Downloader将response提交给engine
⑧:engine将response返回给spider进行数据解析
⑨:engine将解析好的数据封装到item,然后提交给engine
⑩:engine将item提交给pipeline,进行持久化存储
PS:
-
Downloader基于twisted,异步下载
-
持久化存储也可以不通过pipeline进行:通过终端指令进行
- 指令: scrapy crawl 爬虫文件名 -o 存储文件名
- 能存储到本地内容只能是爬虫文件中parse函数的返回值
- 持久化存储的文件类型只能是json、jsonlines、jl、csv、xml
- 优点:简介高效便捷
- 缺点:局限性强
3.基于pipeline的持久化存储步骤:a.编码流程: - 爬虫文件:数据解析 - items.py:在item类中定义相关的属性 - 爬虫文件:将解析的数据封装存储到item类型的对象 - 爬虫文件:将item类型的对象提交给管道进行持久化存储操作 - pipelines.py:管道类的process_item函数将接收到的item对象中存储的数据进行持久化存储操作 - settings.py:在配置文件中开启管道 b.优点: 通用性强