centos快速部署爬虫所需的环境, 避免走弯路! 以下所涉及其他博客的链接, 都是作者亲身测试有效的, 特此汇总
一、数据盘挂载
# 注意事项
echo '/dev/vdb1 /mnt ext4 defaults 0 0' >> /etc/fstab
mount -a
二、python环境
pip3安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
command 'gcc' failed with exit status 1报错解决方法
yum install python3-devel
三、mongodb安装
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.15.tgz
Centos7下MongoDB下载安装详细步骤
最好不要用默认的端口27017, 并且一定要设置密码, 密码生成器, 防止被暴力破解
mongo.conf, 修改处仅供参考
dbpath=/mnt/mongodb/data
logpath=/mnt/mongodb/logs/mongo.log #事先创建该文件
logappend=true
journal=true
quiet=true
port=5010
fork=true #后台运行
bind_ip=0.0.0.0 #允许任何IP进行连接
wiredTigerCacheSizeGB=2 # 这个最好设置下, 防止内存一直增长
auth=true
注意事项
数据目录换成硬盘所在目录
启动:
cd /usr/local/mongodb/mongodb-linux-x86_64-3.6.13/bin
mongod -f /mnt/mongodb/mongo.conf
设置用户名, 密码
use admin
db.createUser({"user":"admin","pwd":"123456","roles":["root"]})
配置文件加上:auth=true
登录
use admin
db.auth('admin','123456')
第二种登录方法
mongo --port 5010 -u "admin" -p "123456" --authenticationDatabase "admin"
mongodb导出/备份命令
mongoexport -h localhost --port 5010 -u "admin" -p "123456" -d test_db -c test_col -o /mnt/test.json --authenticationDatabase admin
mongodump -h localhost --port 5010 -u "admin" -p "123456" -d test_db -o /mnt --authenticationDatabase admin
可视化工具建议使用: Robo 3T
四、redis安装
centos安装redis+三种启动方式
CentOS7安装Redis4.0.2
redis允许远程访问并设置密码
密码和端口建议更改设置
redis.conf 修改处仅供参考
protected-mode no
port 5009
daemonize yes
requirepass your_password
进入src目录, 启动redis
cd /mnt/redis/redis-5.0.8/src
./redis-server /mnt/redis/redis-5.0.8/redis.conf
redis-cli命令全局使用
ln -s /mnt/redis/redis-5.0.8/src/redis-cli /usr/bin/redis-cli
auth "password"
scrapy-redis配置格式
REDIS_URL = 'redis://:password@ip:port/0'
可视化工具推荐使用: RedisDesktopManager
五、scrapyd
default_scrapyd.conf 仅供参考
[scrapyd]
eggs_dir = eggs
logs_dir = logs
items_dir =
jobs_to_keep = 100
dbs_dir = dbs
max_proc = 2000
max_proc_per_cpu = 100
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port = 5008
debug = off
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
webroot = scrapyd.website.Root
find / -name default_scrapyd.conf
/usr/local/lib/python3.6/site-packages/scrapyd/default_scrapyd.conf
mkdir scrapyd
cd scrapyd
启动:nohup scrapyd &
每次启动确保在scrapyd目录内运行该命令
六、gerapy
默认是本地化启动,如果端口被占用请自行更改
nohup gerapy runserver 0.0.0.0:5007 &
七、代理ip池
推荐项目 proxy_pool
1) helper --> scheduler.py中设置获取及检查代理ip频率
scheduler.add_job(runProxyFetch, 'interval', seconds=15, id="proxy_fetch", name="proxy采集")
scheduler.add_job(runProxyCheck, 'interval', minutes=1, id="proxy_check", name="proxy检查")
检查代理可能会阻塞采集代理任务, 需要合理设定检查代理频率或并发
检查代理并发设置地方: helper --> check.py, 默认为20个线程
查看采集代理间隔时间是否按照设置的15s, 可以在proxyFetch.py中打印日志进行确认, 从而调整上述参数
2) fetcher --> proxyFetcher.py设置扩展代理
返回格式: host:ip
3) setting.py 检查代理可用性
VERIFY_URL = "https://www.baidu.com"
VERIFY_TIMEOUT = 5
MAX_FAIL_COUNT = 0 设置失败次数, 超过后从数据库进行删除(实际情况设定)
4) 程序启动
# 启动调度程序
nohup python proxyPool.py schedule &
# 启动webApi服务
nohup python proxyPool.py server &
或者sh start.sh
八、oss
图形化管理工具ossbrowser
ossutil的下载及安装操作
做爬虫怎能少得了备份, 推荐使用阿里云oss, 上传下载推荐ossutil, 较其他方式快
上传文件
nohup ./ossutil64 cp /mnt/youfile oss://youpath &
上传文件夹
nohup ./ossutil64 cp -r /mnt/youfolder oss://youpath &
下载文件
nohup ./ossutil64 cp oss://youpath/youfile /mnt/ &