Я хочу очистить загруженные данные JavaScript веб-сайта, отображаемые при нажатии кнопки «загрузить дополнительные аргументы».

#python #scrapy

Вопрос:

Это мой код паука, Пожалуйста, скажите мне, что я делаю неправильно, я хочу загрузить больше аргументов, выполняя запросы, пожалуйста, проверьте, правильный ли мой запрос, и какой тип ответа я получаю, и как с ним справиться

    import scrapy
    import json
    from scrapy.selector import Selector
    class ArgumentSpider(scrapy.Spider):
        name = 'myspider'
        start_urls = ['https://www.debate.org/opinions/kirk-will-always-be-better-than-picard']
        def parse(self, response):
            headers = {'Referer': 'https://www.debate.org/opinions/kirk-will-always-be-better-than-picard',
                       'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90',
                       'Accept': 'application/json, text/javascript, */*; q=0.01',
                       'Accept-Language': 'en-US,en;q=0.9',
                       'Accept-Encoding': 'gzip, deflate, br',
                       'Content-Type': 'application/json; charset=utf-8',
                       'X-Requested-With': 'XMLHttpRequest',
                       # 'Content-Length': 246,
                       # 'Connection': 'keep-alive',
                       }
            payload = """
            { debateId:"155D90B8-23AF-4AB5-889D-3D6AEC074752", itemsPerPage:'10', nsort: '5', pageNumber: '5', ysort: 5}
            """
            yield scrapy.Request(
                url='https://www.debate.org/opinions/kirk-will-always-be-better-than-picard',
                method='POST',
                body=json.dumps(payload),
                headers=headers,
                callback=self.parse_ajax
            )
**This is my callback function to deal with the response**
        def parse_ajax(self, response):
            response = response.text
            # items = Selector(response=response).xpath('//body/text()').get()
            test = json.loads(response)
            yield {'items': test}