爬虫与 Gerapy
环境搭建
1.执行如下命令,等待安装完毕
pip3 install gerapy
2.验证gerapy是否安装成功
在终端中执行 gerapy 会出现如下信息
Usage:
gerapy init [--folder=]
gerapy migrate
gerapy createsuperuser
gerapy runserver []
Gerapy配置启动
1.新建一个项目
gerapy init
执行完该命令之后会在当前目录下生成一个 gerapy 文件夹,进入该文件夹,会找到一个名为 projects 的文件夹
2.对数据库进行初始化(在 gerapy 目录中操作),执行如下命令
gerapy migrate
对数据库初始化之后会生成一个 SQLite 数据库,数据库保存主机配置信息和部署版本等
3.启动 gerapy 服务
gerapy runserver
此时启动 gerapy 服务的这台机器的8000端口上开启了 Gerapy 服务,在浏览器中输入http://localhost:8000 即可进入 Gerapy 管理界面,在管理界面就可以进行主机管理和界面管理
爬虫与 scrapyd
scrapyd的安装
scrapyd 服务:
pip install scrapyd
scrapyd 客户端:
pip install scrapyd-client
启动 scrapyd 服务
1.在 scrapy 项目路径下 启动 scrapyd 的命令:sudo scrapyd 或 scrapyd
2.启动之后就可以打开本地运行的 scrapyd ,浏览器中访问本地 6800 端口可以查看 scrapyd 的监控界面
3.点击job可以查看任务监控界面
scrapy 项目部署
配置需要部署的项目
编辑需要部署的项目的 scrapy.cfg 文件(需要将哪一个爬虫部署到 scrapyd 中,就配置该项目的该文件)
[deploy:部署名(部署名可以自行定义)]
url = http://localhost:6800/
project = 项目名(创建爬虫项目时使用的名称)
部署项目到 scrapyd
同样在 scrapy项目路径下执行:
scrapyd-deploy 部署名(配置文件中设置的名称) -p 项目名称
管理 scrapy 项目启动项目:curl http://localhost:6800/schedule.json -d project=project_name -d spider=spider_name
关闭爬虫:curl http://localhost:6800/cancel.json -d project=project_name -d job=jobid
使用 requests 模块控制 scrapy 项目
import requests
# 启动爬虫
url = 'http://localhost:6800/schedule.json'
data = {
'project': 项目名,
'spider': 爬虫名,
}
resp = requests.post(url, data=data)
# 停止爬虫
url = 'http://localhost:6800/cancel.json'
data = {
'project': 项目名,
'job': 启动爬虫时返回的jobid,
}
resp = requests.post(url, data=data)
了解 scrapyd 的其他 webapicurl http://localhost:6800/listprojects.json (列出项目)
curl http://localhost:6800/listspiders.json?project=myspider (列出爬虫)
curl http://localhost:6800/listjobs.json?project=myspider (列出job)
curl http://localhost:6800/cancel.json -d project=myspider -d job=tencent (终止爬虫,该功能会有延时或不能终止爬虫的情况,此时可用kill -9杀进程的方式中止)
小结在 scrapy 项目路径下执行sudo scrapyd或scrapyd,启动 scrapyd 服务;
或以后台进程方式启动nohup scrapyd > scrapyd.log 2>&1 &
部署 scrapy 爬虫项目scrapyd-deploy -p myspider
启动爬虫项目中的一个爬虫curl http://localhost:6800/schedule.json -d project=myspider -d spider=tencent