部署云爬虫部署的坑点一二三

115 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情

前言

水一篇~

python 环境的问题

这里使用的时centos7.0以上的系统环境 所以这里默认的python环境时python2.7 在这里插入图片描述 所以当要使用python3时要加上python3 同理python3自带pip3使用时注意pip3 install something 此外这里没有默认安装pip2的版本需要自己手动安装 现在直接输入一下指令

wget https://pypi.python.org/packages/c4/44/e6b8056b6c8f2bfd1445cc9990f478930d8e3459e9dbf5b8e2d2922d64d3/pip-9.0.3.tar.gz
tar -xvf pip-9.0.3.tar.gz
cd pip-9.0.3
python setup.py install
easy_install pip
python --version
pip --version

这个可以安装python2的pip 这个时候使用pip的时候就要区分一下了例如使用pip2下载lxml

在这里插入图片描述 这里的话版本没更新,按照提示操作就ok了

脚本上传

这里的话我使用的时xshell来对我的服务器进行连接,上传的话,直接托拽文件拖进黑色的命令窗口就行了 在这里插入图片描述 在这里插入图片描述 接下来使用命令就好了, 这里的爬虫脚本其实就是我先前写的 爬虫小练(刷访问量)(python+requests(headers+proxy)+Queue+threading) 只是这里设置了argv参数罢了

命令使用

这里先介绍一下nohub的用法

nohub 指令 (your command) & 可以使得xshell退出后程序任然运行

注意这里的&这个是指后台运行不输出,将输出输入至out.log文件里面 如果不想保存任何输入可以在后面加入 2>&1 &此时只会保存错误,如果连错误都不报存的话,那么直接指向/dev/null 也就说说指向输出为这个/dev/null这个类似于垃圾桶. 换句话说如果你不行保存任何输出,生成任何输出日志,并且只保存错误至out.log 那么你可以这样

nohub  yourcommand >/dev/null 2&1 &

我在这里使用的指令是

nohub python3 bokeshown.py https://blog.csdn.net/FUTEROX/article/details/112987200 >/dev/null 2>&1 &

但是这个指令有问题那就是,对于需要用户标准输入的时候,这玩意会直接停止,换句话说,你输入了这个指令后,再按一下回车你会发现这个程序无了

在这里插入图片描述

用ps也找不到这个指令运行(那个现在运行的指令是我用screen创建的) 在这里插入图片描述

screen

显然为了满足需求我这里创建了screen screen -S bokeshown python3 bokeshown.py blog.csdn.net/FUTEROX/art… crtl + a +d 保存退出 screen -r -d 查看此时的状态

在这里插入图片描述 此外还有常用指令

1.screen -S yourname 创建一个新的screen。
2.screen -ls 看当前用户screen涉及到的的列表。
3.screen -r session(具体可以用第二条命令获得),恢复之前detached的screen。
4.screen -d session 将一个处在Attached状态下的screen变为detached的状态,这样你才可以接着访问。

为什么会出现Attached状态,可能你screen的时候直接关闭了shell,但是服务器那边不知道你要detached这个screen,这样会导致下次在访问时,无法访问。

5.ctrl+a键+d键 detach一个screen并退出。
6.screen -X -S sessionname quit删除一个之前的screen。

杀死也简单 ps 查看进程 然后 kill pid