月度归档:2017年07月

Python多线程爬虫越爬越慢的解决方法

系统环境:
Ubuntu 16.04 Server
Python3.5
爬虫情况:
1、从Mysql数据库获取任务
2、任务导入列表后开始http请求,将数据以文件形式保存到硬盘
3、开80线程
遇到的问题:
1、家用路由器频繁死机(一天两三次)
2、爬虫开始时爬取速度很快,但是越来越慢
解决思路: 继续阅读

Linux(ubuntu)开机启动脚本遇到的坑

使用python制作了一个脚本,想法是每6小时重新执行一次,而脚本是重复循环的也就是6小时里它是不会自动结束运行,所以单纯使用crontab定制定时任务不能直接达到目的,需要使用脚本检查PID,太麻烦!于是想到是使用crontab定制每6小时重启一次主机,然后脚本放在/etc/rc.local里达到开机启动的目的,坑也在这里挖好了,其实还是自己技术不精导致的!!!
1、crontab脚本是在root下编辑的,如下:

0 */6 * * * reboot

这里是第一个坑,到时间主机就是不重启?!原来reboot需要root权限所以脚本要写成如下形式,改完立即好用:

0 */6 * * * sudo reboot

2、rc.local中脚本是这样写的:

/usr/bin/python3 /root/dl.py

这里是第二大坑,问题不在语法,而是dl.py文件没有可执行权限!使用命令chmod 111 dl.py解决
第三大坑是脚本执行了,却提示mysql错误没有conn对象,原来是脚本启动时mysql还没有准备好所以连接失败解决方法很多,异常判断等待几秒重连mysql数据库,我索性脚本运行开始先等10s后再连接数据库,问题解决。