我有小的抓取脚本。我有 2000 个名称的文件,我使用这些名称在 YouTube 中搜索视频 ID。由于获取所有ID需要很长时间,所以我不能一次完成。我想要的是找到我最后一次刮擦的位置,然后从那个位置开始。做这个的最好方式是什么?我正在考虑将使用过的名称添加到列表中,然后检查它是否在列表中,如果没有 - 开始抓取,但也许有更好的方法来做到这一点?(我希望是的)。
从文件和抓取的 ID 中获取名称的部分。我想要的是当我退出抓取时,下次我启动它时,它不会从头开始运行,而是从上次结束的地方开始运行:
index = 0
for name in itertools.islice(f, index, None):
parameters = {'key': api_key, 'q': name}
request_url = requests.get('https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&type=video&fields=items%2Fid', params = parameters)
videoid = json.loads(request_url.text)
if 'error' in videoid:
pass
else:
index += 1
id_file.write(videoid['items'][0]['id']['videoId'] + '\n')
print videoid['items'][0]['id']['videoId']