#python #scrapy
#python #scrapy
Вопрос:
У меня есть паук с динамическими start_urls. URL меняется каждый день. Из-за метода класса он меняется сразу после развертывания или запуска сервера и остается неизменным.
eskisehir.py
class EskisehirSpider(scrapy.Spider):
now = datetime.datetime.today()- timedelta(days=1)
now_time = now.strftime("%d.%m.%y")
name = 'eskisehir'
allowed_domains = ['www.esktb.org.tr']
start_urls = ['http://esktb.org.tr/json/gunluk_bulten.php?tarih=' now_time]
def parse(self, response):
###myparser###
Например, я развертываю свой проект 30.09.2020, и он должен меняться каждый день, но вчера я узнал, что URL-адрес остается неизменным, например http://esktb.org.tr/json/gunluk_bulten.php?tarih=30.09.20
Итак, как я могу менять start_urls каждый день при запуске сканера?
Ответ №1:
Для этого вам нужно поместить генератор ссылок в отдельный метод. Вы также можете обернуть его в @property и ссылаться на него как на свойство. Вот пример:
class EskisehirSpider(scrapy.Spider):
name = 'eskisehir'
allowed_domains = ['www.esktb.org.tr']
@property
def start_urls(self):
now = datetime.datetime.today() - timedelta(days=1)
now_time = now.strftime("%d.%m.%y")
return ['http://esktb.org.tr/json/gunluk_bulten.php?tarih=' now_time]
def parse(self, response):
print(f'start_urls is: {self.start_urls}')
pass
Комментарии:
1. @MuratTemir Рад это слышать. Счастливого кодирования!