#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}