esbatmop / arxivSpider_mnbvc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

arxivSpider_mnbvc

描述

arxivSpider_mnbvc是一个Python项目,用于从Arxiv下载论文。它包含多个脚本,可以并行下载论文,处理网络错误和连接中断,使用随机用户代理来防止被Arxiv封锁,使用进度条显示下载进度,并且可以选择从不同的URL下载论文。这个项目是MNBVC计划的一部分。

脚本

arxivSpider.py

这是主程序,用于从Arxiv下载论文。它使用多线程并行下载论文,可以处理网络错误和连接中断。

single-arxivSpider.py

这个脚本是一个单线程版本的arxivSpider.py,用于从Arxiv下载论文。

update_records.py

这个脚本用于更新已经存在的用于记录已下载论文的jsonline文件。

run.sh

这是一个bash脚本,用于启动arxivSpider.py

使用

运行以下命令来启动主程序:

python arxivSpider.py

你可以使用命令行参数来配置脚本的行为。以下是可用的命令行参数:

  • --meta_file: 存储arxiv论文元信息的文件地址,默认为./arxiv-metadata-oai-snapshot.json
  • --retry_times: 对同一个url最多重试次数,默认为3
  • --log_interval: 间隔多少篇文章打印一次信息,默认为10
  • --max_workers: 线程数量,默认为5
  • --max_files: 调试用,最大论文爬取数量,设置为0时,则全部爬取,默认为100
  • --out_folder: 下载的文件夹位置,默认为./download

例如,如果你想使用10个线程来下载论文,你可以运行以下命令:

python arxivSpider.py --max_workers 10

你也可以在bash脚本中进行设置,并且直接启动bash脚本:

bash run.sh

要更新已下载论文的记录,你需要修改update_records.py中的参数,然后运行以下命令:

python update_records.py

它接受以下三个参数:

  • jsonl_file:这是一个已经存在的jsonline文件,该文件记录了已经下载的论文。
  • updated_jsonl_file:这是一个新的jsonline文件,该文件将包含更新后的记录。
  • main_folder:这是你的主文件夹路径,其中包含了下载的论文。

这个脚本会遍历jsonl_file中的每一条记录,检查对应的PDF文件和源文件是否存在于main_folder中。如果存在,并且记录中的状态为None,那么它会更新记录的状态为'downloaded',并记录下载时间。

注意

该项目仅供学习和研究使用,不得用于任何商业用途。请遵守Arxiv的使用条款,并尊重作者的版权。

许可

MIT license

About

License:MIT License


Languages

Language:Python 98.3%Language:Shell 1.7%