项目简介
本项目借助Scrapy框架打造了一个针对学术论文网站的大规模爬虫系统。主要对ACM、Springer、ScienceDirect这三个学术论文网站开展数据爬取工作,爬取内容涵盖论文基本信息、PDF文件以及视频URL地址等。爬取的数据会存储在MongoDB中,同时通过Elasticsearch和Kibana搭建了可视化检索系统,便于用户对数据进行检索和展示。
项目的主要特性和功能
- 爬取数据自动去重:爬虫遇到相同论文时,系统自动去除重复数据,保证数据库中数据唯一。
- IP池、线程池爬取:部署代理IP池,爬虫随机获取可用IP,支持多线程爬取,提高爬取效率。
- 增量爬取:支持增量式爬取,定时更新数据,确保数据实时性。
- 异常处理:运用try - catch逻辑块处理异常,防止爬虫意外退出。
- 断点续爬:网络崩溃或手动终止爬取时,系统能从断点处继续,避免数据丢失。
- 日志技术:爬虫的爬取信息和状态实时通过日志输出,方便用户监控。
安装使用步骤
1. 运行环境
- 系统:Windows、Linux、MacOS
- 软件:Python 3
2. 安装依赖
在项目根目录下执行以下命令安装依赖:
bash
pip install -r requirements.txt
3. 安装组件
3.1 ElasticSearch
bash
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.16.2-linux-x86_64.tar.gz
cd elasticsearch-7.16.2/
./bin/elasticsearch
curl 'localhost:9200'
3.2 MongoDB
bash
sudo apt-get install libcurl4 openssl
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-5.0.5.tgz
tar -zxvf mongodb-linux-x86_64-ubuntu1804-5.0.5.tgz
mv mongodb-src-r5.0.5 /usr/local/mongodb
export PATH=/usr/local/mongodb/bin:$PATH
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo chown `whoami` /var/lib/mongo
sudo chown `whoami` /var/log/mongodb
cd /usr/local/mongodb/
./bin/mongod -f ./bin/mongodb.conf
./bin/mongo
3.3 Kibana
bash
curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-darwin-x86_64.tar.gz
tar -xzf kibana-7.16.2-darwin-x86_64.tar.gz
cd kibana-7.16.2-darwin-x86_64/
./bin/kibana
访问localhost:5601
检查安装结果。
3.4 ProxyPool
bash
cd ProxyPool
pip3 install -r requirements.txt
参考Redis安装教程安装和配置Redis。
bash
./redis-server
python3 run.py
使用代理池可通过http://localhost:5555/random
获取随机可用代理。
4. 运行
bash
git clone <仓库地址>
python prepare.py
cd Reptiles
chmod +x run.sh
./run.sh ACM
其中ACM
可替换为Springer
或ScienceDirect
。爬虫日志位于Logs
文件夹内。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】