Как получить новые заголовки токенов во время работы scrapy spider - PullRequest
0 голосов
/ 03 августа 2020

Я запускаю scrapy spider, который начинает с получения токена авторизации с веб-сайта, с которого я выполняю парсинг, с использованием библиотеки базовых c запросов. Функция для этого называется get_security_token (). Этот токен передается в качестве заголовка запроса scrapy. Проблема в том, что срок действия токена истекает через 300 секунд, а затем я получаю ошибку 401. Может ли паук увидеть ошибку 401, снова запустить функцию get_security_token (), а затем передать новый токен всем заголовкам будущих запросов?

import scrapy

class PlayerSpider(scrapy.Spider):
name = 'player'

def start_requests(self):

    urls = ['URL GOES HERE']
    header_data = {'Authorization':'Bearer 72bb65d7-2ff1-3686-837c-61613454928d'}
    for url in urls:
        yield scrapy.Request(url = url, callback = self.parse,headers = header_data)


def parse(self, response):
    yield response.json()

1 Ответ

1 голос
/ 04 августа 2020

, если это чистый scrapy, вы можете добавить handle_httpstatus_list = [501] после start_urls, а затем в вашем методе parse вам нужно сделать что-то вроде этого:

if response.status == 501:
    get_security_token()
...