Чтобы очистить конкретный веб-сайт за 180 дней в будущем, необходимо получить токен аутентификации, чтобы получить данные json для очистки. При очистке токен истекает, и ответ HTTP возвращает код состояния 401 «Несанкционированный». Как мне получить новый токен в скребок и продолжить очищение? Любая помощь приветствуется.Scrap - аутентифицированный токен аутентификации веб-сайта истекает при очистке
def start_requests(self):
return [Request(url=AUTHORIZATION_URL, callback=self.request_ride_times)]
def request_ride_times(self, response):
# parse json data
data = json.loads(response.body)
# get auth token
auth = '{}'.format(data['access_token'])
# set auth token in headers
headers = {'Authorization': 'BEARER {}'.format(auth)}
# note: this probably isn't really necessary but it doesn't hurt (all the sites times we are scraping are in EST)
now = get_current_time_for_timezone("US/Eastern")
# get ending timeframe for scraping dates - 190 days out
until = now + SCRAPE_TIMEFRAME
for filter_type in FILTER_TYPES:
filter_url_query_attr = '&filters={}'.format(filter_type)
scrape_date = now
while scrape_date <= until:
url = urljoin(SCRAPE_BASE_URL, '{}{}&date={}'.format(SCRAPE_BASE_URL_QUERY_STRING, filter_url_query_attr, scrape_date.strftime("%Y-%m-%d")))
yield Request(url, headers=headers, callback=self.parse_ride_times, errback=self.error_handler)
scrape_date += timedelta(days=1)
def parse_ride_times(self, response):
# parse json data
data = json.loads(response.body)
for index, ride_details in enumerate(data['results']):
if 'schedule' not in ride_details:
continue
ride_schedule = ride_details['schedule']
# create item...
yield item
Я смеялся, когда я увидел * 180 дней в будущее * –
На сайте есть расписание с сегодняшнего дня через 180 дней с сегодняшнего дня. Я хочу получать данные о расписании за каждый день. Имеет ли это смысл? – groovesocket
Я понимаю, я просто подумал, что это смешно. Как вы сначала аутентифицируетесь? –