Scrapy 是什么
Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等程序中。
Scrapy 的结构
Scrapy 的结构如下:
via Architecture Overview - Scrapy 1.5.0
在 Scrapy 中数据流是这样的:
- 引擎从爬虫(Spider)获得初始抓取请求
- 引擎在 Scheduler 中安排好请求,获取下一个抓取请求
- Scheduler 返回下一个抓取请求
- 引擎通过 Downloader 的 Middlewares 发送请求到 Downloader
- 完成页面下载后,Downloader 生成请求并通过 Middlewares 发送给引擎的
- 引擎接收来自 Downloader 的响应,通过 Spider Middlewares 发送给 Spider 处理
- Spider 处理请求并返回爬取内容,向引擎提交下一个请求
- 引擎发送爬取内容到 Item Pipelines,然后发送处理请求到 Scheduler,获取下一个爬取请求
- 重复 1-8 步,直到没有新的请求
安装 Scrapy
新建 Python 虚拟环境
比如用 conda,也可以用 virtualenv (参考:virtualenv installation instructions)
conda create -n {env_name} {list of packages}
上面的命令中,env_name 是用来折腾爬虫的项目环境名称,list of package是要一起安装的包,如 scrapy,pandas。
我新建了一个叫 pyp 的环境,打开这 Python 环境的命令是:
source activate pyp
如果你使用 zsh,可以在 zshrc 文件里面新建 alias,并 source ~/.zshrc 保存生效,下次就可以用别名快捷打开这个环境了。
安装 Scrapy
通过 pip 安装很方便
pip install Scrapy
新建 scrapy 项目
进入存放项目的目录,用命令新建一个爬虫项目:
scrapy startproject {name}
新建好以后,可以看到起名为 lyrics 的爬虫项目,生成了以下目录和文件:
├── lyrics
│ ├── __init__.py
│ ├── __pycache__
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── settings.py
│ └── spiders
│ ├── __init__.py
│ └── __pycache__
└── scrapy.cfg
4 directories, 7 files
对照上面介绍的 Scrapy 引擎的结构,可以大概知道每个文件的作用。
下一篇 码以致用02 - 用 Scrapy 爬虫抓取简单心理咨询师资料,我们尝试用 Scrapy 抓取一些简单的网页内容。
Ref
You might be also interested in:
- The Ambiguities of Experience | 组织和经验的迷思
- Upgrade your design thinking | 升级你的设计思维
- 5 Key Concepts of Programming | 学编程?从五个思维训练开始
- Why and How You Should Use Git | 多用 Git 少交税
- Learning tips for our brain | 别傻了,傲娇大脑爱学习?
- Model about behavior change | 你为什么不想做,想做也做不到
- Change about change | 莫弃疗——关于改变的改变
@kidult00 . Thanks for Upvoting !