Я очищаю большой файл, содержащий список URL. Очевидно, я не могу очистить все URL-адреса подряд. Мое текущее решение читает URL из файла. Как только он сканирует и загружает документы с этой страницы, я записываю в новый файл, который выглядит примерно так:
https://url_i_completed_crawling E:/location_I_stored_crawled_files
https://another_url_i_completed_crawling E:/another_location_I_stored_crawled_files
Моя проблема заключается в том, что когда я останавливаю паука и пытаюсь продолжить с того места, на котором остановился,Программа запускается из исходного текстового файла URL-адресов и начинает перечитывать и перезаписывать предыдущие загрузки с тем же содержимым.
Я попытался поместить код в паук, который проверяет, передается ли URL-адрес в функцию анализа вФайл "complete_urls.txt" ... но, очевидно, это длинная проверка, так как число завершенных URL-адресов растет.
Итак, мой вопрос таков: как я могу вспомнить, какой URL был последним URL для сканирования, и чтобы мой паук начинал со следующего URL в текстовом файле при перезапуске программы.
# file containing urls to crawl is passed in from command line
# > scrapy crawl fbo-crawler -a filename=FBOSpider/urls_file.txt
def __init__(self, filename=None):
if filename:
with open(filename, 'r') as r:
# here I want to check if r.readlines() is passing a URL that I have aleady crawled
# crawld URLs are stored in a text file as shown above
self.start_urls = r.readlines()