- 基本介绍:基于异步爬虫的框架。高性能的数据解析,高性能的持久化存储,全站数据爬取,增量式,分布式…
- 环境的安装:
- Linux:
- Windows:
-
scrapy基本使用
-
工程的目录结构:
- spiders文件夹: 这里存放爬虫的主程序,这里可以写多个爬虫文件,分别执行不同的爬虫功能。
- 要求:必须要存储一个或者多页爬虫文件
- items.py: 这个文件定义了爬虫程序中爬取的字段信息,对应着数据库中的属性信息。
- middlewares.py: 下载中间件,可以对爬取到的网页信息尽心特定的处理。
- pipelines.py: 管道,也就是将返回来的item字段信息写入到数据库,这里可以写写入数据库的代码。
- settings.py: 配置文件。
- spiders文件夹: 这里存放爬虫的主程序,这里可以写多个爬虫文件,分别执行不同的爬虫功能。
-
2.创建爬虫文件
- cd proName
- scrapy genspider spiderName www.xxx.com
-
3.执行工程
- scrapy crawl spiderName
- 重点关注的日志信息:ERROR类型的日志信息
- settings.py:LOG_LEVEL = ‘ERROR’
- settings.py:不遵从robots协议
- settings.py:
- UA伪装:USER_AGENT = ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36’
settings.py代码参考以及配置意思的含义:
数据解析
打开spiders文件夹下爬虫文件
wechat/wechat/spiders/wechatspider.py
代码如下:
持久化存储
- 基于终端指令的持久化存储
cd 项目文件下
用命令把爬取课程名和url地址存在本地
- 基于管道的持久化存储
1.spider文件下得爬虫文件wechatspider.py
2.items.py代码
3.去settings里开启管道配置。
4.1 封装管道类,把数据储存到mysql里 ; pipelines.py代码:
,我比较懒,不喜写SQL语句,用sqlalchemy来处理的。
mysql 创建库:
create database wechat charset utf8mb4;
cd spiderst同级目录下
mkdir docs
新建models.py:
执行命令:
alembic init migrations
修改alembic.ini、enc.py代码 ,参考:https://blog.csdn.net/yutu75/article/details/117362459
也可以自行百度如何迁移,
alembic revision --autogenerate -m “v1”
alembic upgrade head
修改pipelines.py,代码:
下面封装了三个管道类:
txt文件,mysql,Redis
执行命令 :
scrapy crwal wechatspider
储存后txt: