scrapy 学习笔记

前言

本科毕设里有一部分内容需要爬一些数据,虽然之前也接触过,不过都是小打小闹,写个小脚本登录个四毛三,爬个成绩,解析个 json 接口啥的。

这次需要的数据量比较大,主要目的是为了提出来相关页面上的文本,而且是像搜索引擎那种无差别爬虫,见到啥网站就爬啥,没有特定的结构和格式,像之前那样写肯定不行,于是只好请出爬虫框架。

其实本来是想着趁着有空造个爬虫框架轮子的,最后还是放(tai)弃(lan)了,scrapy 的轮子本身已经够圆了, 直接用就是了, 顺便异步、反反爬啥的也不用自己解决了,比较无脑。

我的环境: Archlinux / python 3.6.4 / scrapy 1.5.0 / MariaDB 10.1.32

安装

还好我学的比较晚, scrapy 现在已经对 python3 支持的比较好了,反正我目前用着没出啥问题。

安装很简单

pip3 install scrapy

装好之后 PATH 里面就已经有 scrapy 的命令了,后面会用的比较多

创建项目

前面提到的 scrapy 自带脚手架,可以快速搭出来一个项目结构

scrapy startproject 项目名

目录大概长这样:

.
├── lalala                 - 项目根目录
│   ├── __init__.py
│   ├── items.py           - 在这里定义 Item
│   ├── middlewares.py     - 自己定义中间件 (我还没用到)
│   ├── pipelines.py       - 在这里定义 Pipeline
│   ├── settings.py        - 在这里设置一些参数
│   └── spiders            - 在这里定义 Spider
│       ├── __init__.py
│       └── __pycache__
└── scrapy.cfg             - 配置? (我还没用到)

了解 scrapy 的运行过程

pass

需要自己写的部分

pass

Item

Spider

Pipeline

settings.py

To be continued