我正在尝试构建一个类似于 arxiv-sanity 但使用更高级算法的学术论文推荐系统。第一步是请求arXiv服务器并获取所有元数据进行进一步处理。
然而,我写的爬虫经常被arXiv服务器终止,即使我设置了time.sleep(10)
,其中10
是(我认为)一个比较长的时间来保持爬虫。幸运的是,由于我的爬虫依赖于 URL 中的索引,我可以保存 idx
并稍后重新运行该程序。所以这是我的问题:我如何在爬虫终止后自动重新运行它。
import time
import requests
area = "cat:cs.ML+OR+cat:cs.CV"
for idx in range(0, 10000, 100):
base_url = "http://export.arxiv.org/api/query?"
query = "search_query={}&sortBy=lastUpdatedDate&start={}&max_results={}".format(area, idx, 100)
response = requests.get(base_url + query)
# do some processing
time.sleep(10)