前言
本科毕设里有一部分内容需要爬一些数据,虽然之前也接触过,不过都是小打小闹,写个小脚本登录个四毛三,爬个成绩,解析个 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