我正在尝试使用scrappy从一个公共网站上抓取一些数据。谢天谢地,这些数据大部分可以在这里的xhr请求中找到:
但是当我双击查看实际响应时,search_results项中没有数据:
我只是想知道是怎么回事与请求,我如何才能访问这些数据在scrapy,目前我试图喜欢这个,但显然它没有抓住任何数据从响应。
import scrapy
from scrapy import Spider
class Whizzky(Spider):
name = "whizzky"
def __init__(self,):
self.request_url = "https://www.whizzky.net/webapi/get_finder_results.php?cid=31&flavours=&view=rated&price=3&country=®ions="
def start_requests(self):
urls = ["https://www.whizzky.net/finder_results.php"]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
yield scrapy.Request(self.request_url,
method='POST',
callback=self.parse_2)
def parse_2(self, response):
info = {}
info["data"] = response.json()["search_results"]
yield info
1条答案
按热度按时间i2loujxw1#
实际上,响应工作正常,编码结构也正常。您从
API
方法获取json数据。因此,为了正确提取数据,必须将content-type headers
和有效负载数据作为请求方法中的主体参数注入。完整工作溶液示例:
输出: