做过爬虫的都知道,很多公司都会有自己的专属技术人员以及服务器,通常情况下再部署爬虫前,首先要将准备好的inux服务器进行环境部署,并且要安装必要的爬虫技术栈,一切环境部署差不多了再去部署爬虫代码。下面就是我整理的一个真实案例,可以一起看看我从准到部署完成的具体流程。
在Linux系统上部署爬虫系统,需经过以下关键步骤:
1、系统更新
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL2、安装基础依赖
sudo apt install python3-pip git -y # Debian/Ubuntu
sudo yum install python3-pip git -y # CentOS/RHEL1、获取代码
git clone https://github.com/yourusername/spider-project.git
cd spider-project2、创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate3、安装依赖
pip install -r requirements.txt # 包含Scrapy/Requests等库crontab -e
# 添加以下内容(示例:每天凌晨2点运行)
0 2 * * * /path/to/project/.venv/bin/python /path/to/project/spider.py1、安装Celery与Redis
pip install celery redis
sudo apt install redis-server -y2、创建celery_app.py
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def run_spider():
# 调用爬虫主函数
os.system("scrapy crawl myspider")3、启动Worker
celery -A celery_app worker --loglevel=info --detach4、定时触发(通过Beat)
celery -A celery_app beat --detach1、代理IP池
2、请求头随机化
from fake_useragent import UserAgent
headers = {'User-Agent': UserAgent().random}3、请求延迟设置
import random, time
time.sleep(random.uniform(1, 3)) # 随机延迟1-3秒1、MySQL存储
sudo apt install mysql-server -y
sudo mysql_secure_installation # 安全初始化# Scrapy Pipeline示例
import pymysql
class MySQLPipeline:
def process_item(self, item, spider):
connection = pymysql.connect(host='localhost', user='user', password='pass', db='spider_db')
cursor = connection.cursor()
cursor.execute("INSERT INTO table (...) VALUES (...)")
connection.commit()2、MongoDB存储
sudo apt install mongodb -yimport pymongo
client = pymongo.MongoClient("mongodb://localhost:27017")
db = client["spider_db"]
db.collection.insert_one(dict(item))1、日志配置
import logging
logging.basicConfig(
filename='/var/log/spider.log',
level=logging.INFO,
format='%(asctime)s [%(levelname)s] %(message)s'
)2、进程监控(Supervisor)
sudo apt install supervisor -y创建配置/etc/supervisor/conf.d/spider.conf:
[program:spider]
command=/path/to/project/.venv/bin/celery -A celery_app worker
directory=/path/to/project
autostart=true
autorestart=true
stderr_logfile=/var/log/spider_err.log1、防火墙设置
sudo ufw allow 22 # SSH
sudo ufw allow 80,443 # Web访问
sudo ufw enable2、非root用户运行
sudo useradd -m spideruser
sudo chown -R spideruser:spideruser /path/to/project
sudo -u spideruser celery -A celery_app worker# 手动运行测试
source .venv/bin/activate
python spider.py # 或 scrapy crawl myspider
# 检查日志
tail -f /var/log/spider.log上面就是我之前一个项目详细的部署情况,通过以上步骤,咱们可在Linux系统部署稳定高效的爬虫系统。生产环境建议使用Docker容器化部署,并通过Prometheus+Grafana实现性能监控。
如果有任何不懂的地方都可以留言讨论,或者有更好的建议都可以交流交流。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。