scrapy爬取数据为什么价格为空,为什么在xpath解析有显示价格,该怎么解决,京东存在ajax反爬虫

- 图书价格爬取分析

  1. 点击一个页面检查一下
    在这里插入图片描述

  2. json.cn页面进行分析检查,因为有很多价格,市场价,会员价,因此我们只需要选择一种即可
    在这里插入图片描述在这里插入图片描述

- 图书价格ajax获取:

  1. 价格 url ----ajax请求 —发送单独获取数据的 —个数不确定
    而我们要做的是一本书 对应一个价格
    在这里插入图片描述2. https://p.3.cn/prices/mgets?skuIds=J_12508277
            sku_id = book.xpath('.div/@data-sku')
            price_url = 'https://p.3.cn/prices/mgets?skuIds=J_{}'.format()

在这里插入图片描述3.解析价格

 # 解析价格
    def parse_price(self, response):
        item = response.meta.get('book')
        
        # 1.获取 返回的 响应对象数据 ==body==bytes 二进制
        data = response.body
        # 2.将二进制的数据----string
        data_str = data.decode()
        # 3.将json格式的字符串 ---列表--字典
        data_list = json.loads(data_str)
        item['price'] = data_list[0]['p']

优化后的代码为:

    # 解析价格
    def parse_price(self, response):
        item = response.meta['book']
        item['price'] = json.loads(response.body.decode())[0]['p']

        yield item

特别注意的是

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值