基于request+beautifulsoup开发,高效率爬取https://www.aclweb.org/anthology/ 网站上的论文,支持爬取论文的基本信息,对应pdf和视频,支持增量式爬取,使用了代理和ip池等技术
paper 61462
pdf 59789
video 1283
requests==2.23.0
pymongo==3.11.2
psutil==5.8.0
tqdm==4.56.0
beautifulsoup4==4.9.3
python run.py
.
├── README.md
├── requirements.txt
├── run.py
├── statistics.txt
└── utils
├── ACLScrawler.py
├── ACLUrlsCrawler.py
├── ClashControl.py
├── config.py
├── ContentDownloader.py
├── LevelUrls.py
├── PDFDownloader.py
└── VideoDownloader.py
- 从网站https://www.aclweb.org/anthology/ 获取到所有会议的url,再获取对应会议所有年份的url,最后获取所有论文的url并保存在数据库中。、
- 对于第1步中获取到的论文url, 发送request的get请求获取论文的标题,作者,摘要,发布组织,年份,pdf的url,代码的url,视频url等相关信息,保存至mongodb中,并将pdf和视频的url保存至对应表中
- 为了实现增量式爬取,我们将论文的url,pdf的url和视频的url保存置mongodb中,并且每条url数据对应一个visit字段以指示是否爬取了此条url对应的数据
- 根据表中visit字段为false的url分别爬取pdf和视频数据。其中由于视频网站被墙以及反爬虫的策略,我们采用了IP代理和IP的技术
调用ACLScrawler的run函数
- 调用ACLUrlsCrawler的run函数爬取所有论文的url(按照会议-某年会议的顺序遍历)
- 调用ContentDownloader的run函数爬取数据表中所有visit字段为false的url对应的基本论文信息
- 调用PDFDownloader的run函数爬取爬取数据表中所有visit字段为false的url对应的pdf
- 调用VideoDownloader的run函数爬取爬取数据表中所有visit字段为false的url对应的视频