一键安装scrapyd并配置好自启动

我的博客中提到过gerapy的使用,但是,安装gerapy之前是需要把scrapyd配置好的。我写了一个bash脚本一键安装scrapyd并配置好自启动服务。不足的是,需要手动更改scrapyd.conf里的bind ip address然后重新启动scrapyd。

脚本在我的github里: https://github.com/chenxuzhen/bash_install_scrapyd,也可以复制粘贴:

#/bin/bash

pip install scrapyd
cd $HOME
rmdir ~/scrapyd
mkdir ~/scrapyd
sudo rm /usr/lib/systemd/system/scrapyd.service
sudo touch /usr/lib/systemd/system/scrapyd.service
sudo chown $USER:$USER /usr/lib/systemd/system/scrapyd.service
sudo echo "
[Unit]
Description=Scrapyd service
After=network.target

[Service]
User=user
Group=group
WorkingDirectory=anydirectory
ExecStart=scrapyd

[Install]
WantedBy=multi-user.target " >> /usr/lib/systemd/system/scrapyd.service

sudo sed -i "s/User\=user/User\="$USER"/" /usr/lib/systemd/system/scrapyd.service
sudo sed -i "s/Group\=group/Group\="$USER"/" /usr/lib/systemd/system/scrapyd.service
sudo sed -i "s|=anydirectory|="$HOME"/scrapyd|" /usr/lib/systemd/system/scrapyd.service
scrapyd_bin=`echo $(whereis scrapyd) | cut -c 10-99`
echo "$scrapyd_bin"
sudo sed -i "s|=scrapyd|="$scrapyd_bin"|" /usr/lib/systemd/system/scrapyd.service

# nohup $(whereis scrapyd) >& /dev/null &
sudo systemctl enable scrapyd.service
sudo service scrapyd start
sudo service scrapyd status
echo "please change bind ip address in scrapyd.conf and reload scrapyd conf"

gerapy分布式爬虫监控

gerapy部署问题小结

前几天折腾的crawlab虽然功能强大,但是槽点太多了,试试崔大神的gerapy吧。先挖个坑记录下槽点:

  1. 前端无法更改用户密码,Django后台登录可以,这个我是在源码中找出来的(docs/en/source/docker.md, docs/zh_cn/build/html/_sources/docker.md.txt)
  2. 下面docker定死了8000端口,暂时不要使用其他端口。如果需要,改下Dockerfile吧。感觉做的产品不细致,这种应该安装时给选项定制用户信息和端口的
https://github.com/Gerapy/Gerapy/search?q=admin
docker run -d -v ~/gerapy:/app/gerapy -p 8000:8000 germey/gerapy
http://localhost:8000/admin/auth
gerapy爬虫项目结构
  1. 爬虫上传结构是又要求的,需要把整个项目文件夹打包,scrapy.cfg千万不要忘了。
  2. 另外,部署前一定要在每个主机安装好项目的依赖,可以在项目目录运行 pipreqs ./ ,生成requirements.txt然后每个节点pip install -r requirements.txt。不事先安装依赖的话部署会失败
  3. 如果某个.py文件无法在gerapy预览,考虑下该文件是否编码不是utf-8,上传到github时会检测到。

虽然功能比较简单,但是基本上开箱能用,不像crawlab部署困难而且坑儿很多。期待新版本吧。