电商网站商品价格获取方法_电商网站

电商网站商品价格获取方法_电商网站电商网站商品价格获取本文以苏宁易购,京东,两个电商网站,模仿说明电商网站商品价格的两种获取方法。json形式存放,京东商品的价格以json形式存放,以以下页面为例https://item.jd.com/100000287133.html明显价格数据并非放在前端页面里,搜索找到以下数据查看当前的url在浏览器中请求https://p.3.cn/prices/mgets?cal…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

电商网站商品价格获取

本文以苏宁易购,京东,两个电商网站,模仿说明电商网站商品价格的两种获取方法。

json形式存放,京东商品的价格以json形式存放,以以下页面为例
在这里插入图片描述

https://item.jd.com/100000287133.html

明显价格数据并非放在前端页面里,搜索找到以下数据
在这里插入图片描述
查看当前的url
在这里插入图片描述
在浏览器中请求

https://p.3.cn/prices/mgets?callback=jQuery6054119&type=1&area=6_303_36780_0&pdtk=&pduid=1588655612&pdpin=&pin=null&pdbp=0&skuIds=J_100000287133%2CJ_5416604%2CJ_100001477751%2CJ_4741808&ext=11100000&source=item-pc

通常来说call_back包含的内容可以直接去除,将链接处理后得到

https://p.3.cn/prices/mgets?skuIds=J_100000287133
skuIds=J_100000287133 

#分析即可发现j_后的字符串为商品ID,对应商品详情页的链接
请求结果如下:
在这里插入图片描述
接下来,填充主程序。仅作为示例代码,详情数据重新处理

import scrapy
import json

class JgSpider(scrapy.Spider):
    name = 'jg'
    allowed_domains = ['shouji.jd.com','p.3.cn'] #需说明的是在价格详情内域名发生了变化
    start_urls = ['https://item.jd.com/100000287133.html']

    def parse(self, response):

        item = { 
   }

        contain= response.xpath("//div[@class='product-intro clearfix']")

        item["title"] = contain.xpath("./div[@class='itemInfo-wrap']/div[@class='sku-name']/text()").extract_first().strip()
        item["sku_num"] = contain.xpath(".//a[@class='notice J-notify-sale']/@data-sku").extract_first()

        item["price_href"]='https://p.3.cn/prices/mgets?&skuIds=J_{}'.format(item["sku_num"])

        yield scrapy.Request(
            item["price_href"],
            callback=self.price_detail,  #获取价格
            meta={ 
   "item":item}
        )


    def price_detail(self ,response):

        item = response.meta["item"]

        item["price"] =json.loads(response.body.decode())[0]["p"] #json数据遍历方法

        print(item)

需要说明的几点:

allowed_domains = ['shouji.jd.com','p.3.cn'] #需说明的是在价格详情内域名发生了变化
item["price_href"]='https://p.3.cn/prices/mgets?&skuIds=J_{}'.format(item["sku_num"]) #也可直接拼接

代码运行结果如下:
在这里插入图片描述

苏宁易购商品价格获取,与淘宝的逻辑相似存放在主页面但需要正则匹配获取。
在这里插入图片描述
同样以具体的某些页面为例:

https://product.suning.com/0070091633/10717510914.html?safp=d488778a.10038.resultsRblock.12&safc=prd.3.ssdln_502687_pro_pic01-1_0_0_10717510914_0070091633

用同样的方法找到价格
在这里插入图片描述
填充主程序代码:

import scrapy
import re

class SnSpider(scrapy.Spider):

    name = 'sn'
    allowed_domains = ['suning.com']
        
    start_urls=['https://product.suning.com/0070091633/10717510914.html?safp=d488778a.10038.resultsRblock.12&safc=prd.3.ssdln_502687_pro_pic01-1_0_0_10717510914_0070091633']

    def parse(self, response):

        pr=re.findall('"itemPrice":"(.*?)",',response.body.decode())

        print(pr)

运行结果如下
在这里插入图片描述

以上就是主流电商网站的商品价格获取方法,希望对大家的学习工作有所帮助。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187017.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • iOS 强大第三方资源库

    iOS 强大第三方资源库Github用法git-recipesGitrecipesinChinese.高质量的Git中文教程.lark怎样在Github上面贡献代码my-git有关git的学习资料gitignore非常赞有用的.gitignore模板集合(忽略上传的文件集合),包含了各种语言.完整App@open-source-ios-apps-iOS开源App集合,分:swift与Objec…

    2022年6月9日
    108
  • datagrip激活【最新永久激活】

    (datagrip激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html08G05E7DZH-eyJsaWN…

    2022年3月28日
    627
  • mysql连接数据库命令_linux进入mysql的命令

    mysql连接数据库命令_linux进入mysql的命令一、MySQL连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123”之间不能有空格)C:>mysql-hlocalhost-uroot-p123二、MySQL连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123”C:>mysql-h172.16.16.45-P3306-uroot-p123三、MySQL连接本地数据库,用户名为“root”,隐藏密码C:>mysql-hloc

    2022年9月15日
    2
  • Python3网络爬虫快速入门实战解析

    Python3网络爬虫快速入门实战解析请在电脑的陪同下,阅读本文。本文以实战为主,阅读过程如稍有不适,还望多加练习。本文的实战内容有:网络小说下载(静态网站)、优美壁纸下载(动态网站)、爱奇艺VIP视频下载PS:本文为Gitchat线上分享文章,该文章发布时间为2017年09月19日。

    2022年6月12日
    29
  • ES[7.6.x\]学习笔记(四)字段类型(mapping)

    ES[7.6.x\]学习笔记(四)字段类型(mapping)

    2020年11月14日
    211
  • Ajax面试问题_我是面试官,该问什么?

    Ajax面试问题_我是面试官,该问什么?Ajax是什么?Ajax是指一种创建交互式网页应用的网页开发技术,全称是asychronousjavascriptandxml,可以说是已有技术的组合,主要用来实现客户端与服务器端的异步通信效果,实现页面的局部刷新。Ajax应用程序的优势在于:1.通过异步模式,提升了用户体验2.优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用3.Ajax引擎在…

    2022年8月27日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号