scrapy redis splash高度结合
主要框架:
- scrapy
- scrapy-splash
- scrapy-redis
splash
可以采用负载均衡,多节点部署。
scrapy
爬虫也需要多节点部署。单机全站爬取太慢。
安装教程 官方文档
表结构在项目下的models.py中
python3 models.py
宿主机安装 nginx
apt install nginx -y
# or
yum install nginx -y
启动splash 容器
sudo ./create_splash.sh
修改 nginx 的配置文件(/etc/nginx/nginx.conf),在 http 中增加
upstream splash {
least_conn;
server 127.0.0.1:8051;
server 127.0.0.1:8052;
server 127.0.0.1:8053;
server 127.0.0.1:8054;
server 127.0.0.1:8055;
}
server {
listen 8050;
location / {
proxy_pass http://splash;
proxy_connect_timeout 300;
proxy_read_timeout 400;
}
}
重新加载 nginx 配置文件
nginx -s reload
git clone http://git.epmap.org/tao.liu/totalstation_spider.git
cd totalstation_spider
请修改 .env_sample 文件
# 编译镜像
docker build -t totalspider:v1 .
# 启动docker容器
docker run -itd --name xxx totalspider:v1
然后向redis 中添加代爬取的网站,
# 连接redis
redis-cli -h xx.xx.xx.xx -p xxxx
# 向redis中添加数据
lpush waiting_for_crawl:start_urls http://www.gov.cn
爬虫已经开始全站爬取。
- 网页返回数据去重复
- 网页相似度检测
- 监测网页更新