因为服务器的python版本可能过低,首先需要升级Python版本。可通过wget升级python版本,方式如下(以3.11.0为例 ,Python可用版本:https://www.python.org/ftp/python/
( 运行目录在 ~/download下)

一.升级Python 版本

  • 安装依赖

1.输入命令:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2.安装gcc:yum install gcc
3.Python3.7版本之后需要安装libffi-devel:yum install libffi-devel -y

  • wget 获取版本文件

wget http://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
可使用阿里云镜像
wget [https://registry.npmmirror.com/-/binary/python/3.11.0/Python-3.11.0.tgz](https://registry.npmmirror.com/-/binary/python/3.11.0/Python-3.11.0.tgz)

  • 解压文件

tar -xzvf Python-3.11.0.tgz

  • 解压完成后进入目录

cd Python-3.11.0

  • 创建一个python3文件夹 如果存在文件夹则使用 touch

mkdir /usr/local/python3

  • 设置编译后目录

./configure --prefix=/usr/local/python3

  • 编译

make
编译成功后,安装
make install
配置软连接,如果已存在软连接,先删除原来的
rm /usr/bin/python3
ln -s /usr/local/python3/bin/python3.11 /usr/bin/python3
rm /usr/bin/pip3
ln -s /usr/local/python3/bin/pip3.11 /usr/bin/pip3

在安装完成后,pip3 install的包可能不会再/usr/bin中创建软链接,可以在环境变量中修改 $PATH,追加python3路径

1
2
export PY3PATH=/usr/local/python3/bin:/usr/local/python3/lib
export PATH=$PATH:$PY3PATH

二.安装&配置&部署 scrapyd scrapyd-client

pip3 install scrapyd scrapyd-client

修改 scrapyd配置**,将bind-ip 改为0.0.0.0(**下方配置文件路径,可根据pip具体安装路径做出调整O
vim /usr/local/python3/lib/python3.11/site-packages/scrapyd/default_scrapyd.conf

后台启动 scrapyd
nohup scrapyd >& /dev/null &

三.安装&初始化&配置 gerapy

pip3 install gerapy

启动&初始化

  1. 在 ~/myscrapy 目录初始化gerapy gerapy init [文件夹名称,默认叫gerapy] (myscrapy 目录是自己建的目录)
  2. 进入目录 cd gerapy
  3. 首次初始化数据 gerapy migrate
  4. 创建一个登录用户 gerapy createsuperuser
  5. 后台运行gerapy gerapy runserver 0.0.0.0:8000 > /dev/null 2>&1 &

部署到阿里云

服务器已安装 宝塔面板。

开放端口:6800 , 5000

爬坑

  1. 报错:
1
2
ERROR: Could not find a version that satisfies the requirement urllib3.packages.six (from versions: none)
ERROR: No matching distribution found for urllib3.packages.six

执行安装命令: pip3 install --no-cache-dir -U urllib3

  • 上传项目文件
  • 后台启动scrapyd nohup scrapyd &
  • 后台启动spiderkeeper nohup spiderkeeper --port 5555 &
  • 进入项目目录 cd /usr/scrapypro/crawl/
  • 生成egg文件 scrapyd-deploy --build-egg output.egg --deploy-all-targets
  • 下载生成的egg文件
  • 打开spiderkeeper http://xxx.xxx.xxx.xxxx:5000/project/1/job/periodic

测试爬虫 curl [http://localhost:6800/schedule.json](http://localhost:6800/schedule.json) -d project=xxx -d spider=hangye

根据服务查询进程Id
ps -ef|grep "scrapyd"|grep -v grep

ps -ef|grep "spiderkeeper"|grep -v grep

打开定时任务
crontab