У меня есть паук, который будет работать по расписанию. Ввод паука основан на дате. От даты последней очистки до сегодняшней даты. Итак, вопрос в том, как сохранить дату последней очистки в проекте Scrapy? Есть возможность получить данные из настроек scrapy с помощью модуля pkjutil, но я не нашел в документах ссылок на то, как записывать данные в этот файл. Есть идеи? Может альтернатива? P.S. Мой другой вариант - использовать для этого бесплатную удаленную базу данных MySql. Но похоже, что больше работы, если доступно простое решение.
import pkgutil
class CodeSpider(scrapy.Spider):
name = "code"
allowed_domains = ["google.com.au"]
def start_requests(self):
f = pkgutil.get_data("au_go", "res/state.json")
ids = json.loads(f)
id = ids[0]['state']
yield {'state':id}
ids[0]['state'] = 'New State'
with open('./au_go/res/state.json', 'w') as f:
json.dump(ids, f)
Приведенное выше решение отлично работает при локальном запуске. Но я не получаю такого файла или каталога при запуске кода на Scrapinghub.
File "/tmp/unpacked-eggs/__main__.egg/au_go/spiders/test_state.py", line 33, in parse
with open(savePath, 'w') as f:
IOError: [Errno 2] No such file or directory: './au_go/res/state.json'