Scrapy, как создать разные заголовки для каждой страницы? - PullRequest
0 голосов
/ 24 апреля 2020

Я новичок в scrapy, поэтому, пожалуйста, будьте добры :))

Итак, я собираюсь скопировать некоторые JSON файлы из devtools-Network с нескольких страниц с помощью scrapy. Однако каждая страница имеет разные заголовки. Как я могу решить это

Позволяет использовать это

    import scrapy
    import json


        import scrapy
    import json


    class QuoteSpider(scrapy.Spider):
        name = 'quote'
        allowed_domains = ['shopee.co.id']
        page = 1
        start_urls = ['https://shopee.co.id/api/v2/search_items/?by=relevancy&keyword=deodorant&limit=50&newest=0&order=desc&page_type=search&version=2']

    def parse(self, response):
        data = json.loads(response.text)
        for quote in data["quotes"]:
            yield {"quote": quote["text"]}
        if data["has_next"]:
            self.page += 1

            url = "https://shopee.co.id/api/v2/search_items/?by=relevancy&keyword=deodorant&limit=50&newest="+str(self.page)+"&order=desc&page_type=search&version=2"

            headers = {
            'accept'          : '*/*'
            ,'accept-encoding': 'gzip, deflate, br'
            ,'accept-language': 'en-US,en;q=0.9'
            ,'if-none-match-' : '55b03-ba4b020f9bad34856fc4771b0aaedc93'
            ,'referer'        : 'https://shopee.co.id/search?keyword=deodorant&page='+str(self.page)
            ,'sec-fetch-dest' : 'empty'
            ,'sec-fetch-mode' : 'cors'
            ,'sec-fetch-site' : 'same-origin'
            ,'user-agent'     : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36'
            ,'x-api-source'   : 'pc'
            ,'x-requested-with': 'XMLHttpRequest'
        }

            yield scrapy.Request(url=url, callback=self.parse, method='GET', headers=headers)

Как мне добавить уникальные заголовки для каждой страницы, например,

header = {
     'referer': 'some_reference_pagenumber',
     }

Я попробовал скрипт и пытался повозиться с ним, но это всегда приводило к referer:none в оболочке, таким образом, не в состоянии очистить

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...