# -*- coding: utf-8 -*-

"""

根据京东url地址,获取商品价格

京东请求处理过程,先显示html页面,然后通过ajax get请求获取相应的商品价格

1.商品的具体数据在html中的格式,如下(示例)

# product: {

# skuid: 1310118868,

# name: '\u9999\u5f71\u77ed\u88d9\u4e24\u4ef6\u5957\u88c5\u5973\u0032\u0030\u0031\u0034\u51ac\u88c5\u65b0\u6b3e\u97e9\u7248\u957f\u8896\u0054\u6064\u4e0a\u8863\u8377\u53f6\u8fb9\u534a\u8eab\u88d9\u6f6e\u0020\u85cf\u9752\u0020\u004d',

# skuidkey:'7781F505B71CE37A3AFBADA119D3587F',

# href: 'http://item.jd.com/1310118868.html',

# src: 'jfs/t385/197/414081450/336886/3070537b/541be890N2995990c.jpg',

# cat: [1315,1343,1355],

# brand: 18247,

# nBrand: 18247,

# tips: false,

# type: 2,

# venderId:38824,

# shopId:'36786',

# TJ:'0',

# specialAttrs:["is7ToReturn-1"],

# videoPath:'',

# HM:'0'

# }

2.ajax请求代码如下:

# // 获得数字价格

# var getPriceNum = function(skus, $wrap, perfix, callback) {

# skus = typeof skus === 'string' ? [skus]: skus;

# $wrap = $wrap || $('body');

# perfix = perfix || 'J-p-';

# $.ajax({

# url: 'http://p.3.cn/prices/mgets?skuIds=J_' + skus.join(',J_') + '&type=1',

# dataType: 'jsonp',

# success: function (r) {

# if (!r && !r.length) {

# return false;

# }

# for (var i = 0; i < r.length; i++) {

# var sku = r[i].id.replace('J_', '');

# var price = parseFloat(r[i].p, 10);

#

# if (price > 0) {

# $wrap.find('.'+ perfix + sku).html('¥' + r[i].p + '');

# } else {

# $wrap.find('.'+ perfix + sku).html('暂无报价');

# }

#

# if ( typeof callback === 'function' ) {

# callback(sku, price, r);

# }

# }

# }

# });

# };

"""

import urllib

import json

import re

class JdPrice(object):

"""

对获取京东商品价格进行简单封装

"""

def __init__(self, url):

self.url = url

self._response = urllib.urlopen(self.url)

self.html = self._response.read()

def get_product(self):

"""

获取html中,商品的描述(未对数据进行详细处理,粗略的返回str类型)

:return:

"""

product_re = re.compile(r'compatible: true,(.*?)};', re.S)

product_info = re.findall(product_re, self.html)[0]

return product_info

def get_product_skuid(self):

"""

通过获取的商品信息,获取商品的skuid

:return:

"""

product_info = self.get_product()

skuid_re = re.compile(r'skuid: (.*?),')

skuid = re.findall(skuid_re, product_info)[0]

return skuid

def get_product_name(self):

pass

def get_product_price(self):

"""

根据商品的skuid信息,请求获得商品price

:return:

"""

price = None

skuid = self.get_product_skuid()

url = 'http://p.3.cn/prices/mgets?skuIds=J_' + skuid + '&type=1'

price_json = json.load(urllib.urlopen(url))[0]

if price_json['p']:

price = price_json['p']

return price

# 测试代码

if __name__ == '__main__':

url = 'http://item.jd.com/1310118868.html'

url = 'http://item.jd.com/1044773.html'

jp = JdPrice(url)

print jp.get_product_price()

# htm.decode('gb2312', 'ignore').encode('utf-8')

# f = open('jjs.html', 'w')

# f.write(htm)

# f.close()

再给大家分享一个京东价格的爬虫:

fromcreepyimportCrawler

fromBeautifulSoupimportBeautifulSoup

importurllib2

importjson

classMyCrawler(Crawler):

defprocess_document(self,doc):

ifdoc.status==200:

print[%d]%s%(doc.status,doc.url)

try:

soup=BeautifulSoup(doc.text.decode(gb18030).encode(utf-8))

exceptExceptionase:

printe

soup=BeautifulSoup(doc.text)

printsoup.find(id="product-intro").div.h1.text

url_id=urllib2.unquote(doc.url).decode(utf8).split(/)[-1].split(.)[0]

f=urllib2.urlopen(http://p.3.cn/prices/get?skuid=J_+url_id,timeout=5)

price=json.loads(f.read())

f.close()

printprice[0][p]

else:

pass

crawler=MyCrawler()

crawler.set_follow_mode(Crawler.F_SAME_HOST)

crawler.set_concurrency_level(16)

crawler.add_url_filter(.(jpg|jpeg|gif|png|js|css|swf)$)

crawler.crawl(http://item.jd.com/982040.html)

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

python 京东 价格_python根据京东商品url获取产品价格相关推荐

  1. python计算商品总价_python根据京东商品url获取产品价格

    京东商品详细的请求处理,是先显示html,然后再ajax请求处理显示价格. 1.可以运行js,并解析之后得到的html 2.模拟js请求,得到价格 # -*- coding: utf-8 -*- &q ...

  2. python爬虫京东评论_python爬京东评论

    我,找回,密码了! 就是这个网址助我! # In[sy_final]: #!/usr/bin/python import requests import json #这个headers害惨了我,一定要 ...

  3. python秒杀神器_Python实现京东秒杀功能代码

    本文实例为大家分享了Python实现京东秒杀功能的具体代码,供大家参考,具体内容如下 #Python 3.5 #coding:utf-8 #import scrapy from selenium im ...

  4. python京东秒杀_python实现京东秒杀功能

    本文实例为大家分享了python实现京东秒杀的具体代码,供大家参考,具体内容如下 # _*_coding:utf-8_*_ from selenium import webdriver import ...

  5. python数据分析知识_python数据分析:商品数据化运营(上)——知识点

    商品数据运营指标 销售类指标 订单量/商品销售量 订单量指用户提交订单的数量,计算逻辑去重后的订单ID的数量. 商品销售量又称销售件数,指销售商品的数量. 订单金额/商品销售金额 订单金额为用户提交订 ...

  6. python编程价格_Python基础练习实例46(查询价格)

    题目描述 编程实现以下功能:查询水果的单价.有4种水果,苹果(编号:1001).梨(编号:1002).桔子(编号:1003)和葡萄(编号:1004),单价分别是3.00元/公斤,2.50元/公斤,4. ...

  7. python网址拼接_Python相对完美的URL拼接函数

    首先说下什么叫URL拼接,我们有这么一个HTML片段: click me 做为一只辛苦的爬虫,我们要跟踪到这个click me指向的页面,假设这个片段来自:http://www.xxxdu.com,那 ...

  8. 淘宝关键词API接口、1688、京东、拼多多平台商品信息获取采集

    利用平台的文档中心和API测试工具,对接口进行测试.程序获取. 更多API调用展示以及获取Key和secret请移步 {     "items": {         " ...

  9. python爬虫英文单词_Python爬虫入门案例:获取百词斩已学单词列表

    标签: 百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息, ...

  10. python 解析域名_Python实现通过解析域名获取ip地址的方法分析

    本文实例讲述了Python实现通过解析域名获取ip地址的方法.分享给大家供大家参考,具体如下: 从网上查找的一些资料,特此做个笔记 案例1: def getIP(domain): myaddr = s ...

最新文章

  1. html 判断boolean,js关于if()else{}中的判定条件的认识,各种数据类型转换为Boolean类型的转换规则...
  2. python画双折线图-Python Pandas 时间序列双轴折线图
  3. 如何获取高精度CV模型?快来试试百度EasyDL超大规模视觉预训练模型
  4. SpringMVC,MyBatis项目中兼容Oracle和MySql的解决方案及其项目环境搭建配置、web项目中的单元测试写法、HttpClient调用post请求等案例
  5. minio实现文件上传下载和删除功能
  6. PHP读取数据库并按照中文名称进行排序实现代码
  7. IBatis .NET 开发学习笔记——简要介绍
  8. STL vector使用方法介绍
  9. codeblocks设置代码黑色主题
  10. 记一次进销存软件的破解
  11. 用优盘装系统看不到计算机本身的硬盘,电脑u盘重装系统找不到硬盘的3大解决方法...
  12. 【03】手把手教你构建垃圾分类系统-基于tensorflow2.3
  13. RandomAccessSource not opened
  14. BI到底是什么?来听听他们怎么说
  15. 【规律】Cunning Friends
  16. 什么是Session 如何使用Session
  17. 模电学习笔记(上交郑老师)25.深度负反馈放大电路分析
  18. CocosCreator Effect (Shader) - 斜条纹如何画
  19. 中秋两款数字藏品免费空投,手慢无
  20. 【可解释性机器学习】详解Python的可解释机器学习库:SHAP

热门文章

  1. AngularJS------Error: Cannot find module '@angular-devkit/core'
  2. 3 docker容器
  3. window自动生成数据库连接字符串
  4. PHPCMS2008调用Uchome系统[空间之星]GET语句
  5. 计算机专业英语信息系统,信息系统项目管理师英语复习资料:计算机专业英语汇总[5]...
  6. mysql truncate 日期_(LINQ to Entities)使用日期判断条件Truncate日期函数
  7. 乐迪机器人正确操作_乐迪智能早教机器人好用吗 乐迪智能早教机器人使用测评...
  8. ambari安装hive时连接失败_都快2020年了,ambari自定义服务集成,你还没掌握吗?文末有福利...
  9. (void) (_x == _y)
  10. python字典练习_python字典练习