python3 scrapy

情到浓时终转凉″ 提交于 2020-03-05 16:21:39

scrapy 基础教程

1. 认识Scrapy:

来一张图了解一下scrapy工作流程:(这张图是在百度下载的)

scrapy 各部分的功能:

  1. Scrapy Engine(引擎): 负责Spider,Item Pipeline,Downloader,Scheduler 中间的通讯,信号,数据传递等

  2. Scheduler(调度器): 负责接收引擎发送过来的 request 请求,并按照一定的方式进行整理队列,入队,当引擎需要时,交还给引擎

  3. Downloader(下载器): 负责下载 Scrapy Engine(引擎)发送的所有 request 请求,并将其获取到的 response 交还给 Scrapy Engine(引擎),由 引擎 交给spider 来处理

  4. Spider(爬虫): 它负责处理所有response,从中分析提取数据,获取item字段需要的数据,并将需要跟进的URL提交个 引擎 再次进入 Scheduler(调度器)

  4. Item Pipeline(管道): 它负责处理Spider中获取到的item,并进行后期处理(详细分析,过滤,存储等)的地方

  5. Downloader Middlewares(下载中间件): 你可以当作是一个可以自定义扩展下载功能的组件

  6. Spider Middlewares(Spider中间件): 可以理解为是一个可以自定义扩展和操作 引擎 和 Spider 之间通信的功能组件(例如进入Spider 的responses 和从 Spider 出去的 requests)

2. 准备工作:

安装scrapy

1 pip install wheel
2 pip install scrapy

这里如果安装失败(安装失败很正常)

https://www.cnblogs.com/xingxingnbsp/p/12132020.html 这里有解决办法

3. 创建项目:

1 # 创建scrapy项目步骤命令
2 # 创建项目
3 scrapy startproject 项目名
4 # 创建爬虫
5 scrapy genspider 爬虫名 www.jinse.com
6 # 运行爬虫
7 + scrapy crawl 爬虫名

 

如果你已经安装好scrapy 但是还出现下边错误:

 

 

问题所在:

这是由于在当前虚拟环境下找不到scrapy

解决问题:

到这里项目就算创建成功了(就是这么简单O(∩_∩)O哈哈~)

4. scrapy 常用命令:

语法:

scrapy <command> [options] [args]

常用命令:

 1 bench         Run quick benchmark test
 2 check         Check spider contracts
 3 crawl         Run a spider
 4 edit          Edit spider
 5 fetch         Fetch a URL using the Scrapy downloader
 6 genspider     Generate new spider using pre-defined templates
 7 list          List available spiders
 8 parse         Parse URL (using its spider) and print the results
 9 runspider     Run a self-contained spider (without creating a project)
10 settings      Get settings values
11 shell         Interactive scraping console
12 startproject  Create new project
13 version       Print Scrapy version
14 view          Open URL in browser, as seen by Scrapy

 

5. 了解项目:

项目目录

 

 

items.py:

  数据的存储容器,在对数据进行有处理的操作时,必须要用,例如写入txt,插入数据库等,没有对数据进行操作时,可以不使用

middlewares.py:

  该文件是scrapy的中间件文件,可以设置随机请求头,代理,cookie,会话维持等

pipelines.py:

  该文件和主要用来存储数据

settings.py:

  该文件是scrapy的设置文件,可以配置数据库连接等

spiders/jinse.py:

  该文件就是我们刚才创建的爬虫文件

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!