京东商品详细的请求处理,是先显示html,然后再ajax请求处理显示价格。

1.可以运行js,并解析之后得到的html

2.模拟js请求,得到价格

# -*- 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. 拼多多商品详情采集上传京东店铺(拼多多商品详情接口,京东商品详情接口,整店宝贝采集接口,一键采集宝贝详情接口,无货源商品详情采集接口)代码对接教程

    拼多多商品详情采集上传京东店铺(拼多多商品详情接口,京东商品详情接口,整店宝贝采集接口,一键采集宝贝详情接口,无货源商品详情采集接口)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码 ...

  2. 拼多多商品详情采集上传京东店铺(拼多多商品详情接口,京东商品详情接口,拼多多整店宝贝采集接口,一键采集拼多多宝贝详情接口,无货源商品详情采集接口)代码对接教程

    拼多多商品详情采集上传京东店铺(拼多多商品详情接口,京东商品详情接口,拼多多整店宝贝采集接口,一键采集拼多多宝贝详情接口,无货源商品详情采集接口)代码对接教程如下: 1.公共参数 名称 类型 必须 描 ...

  3. 淘宝商品详情采集上架京东店铺(无货源商品数据采集接口,京东商品详情接口,淘宝商品详情接口,整店商品采集上传接口)接口代码对接教程

    淘宝商品详情采集上架京东店铺(无货源商品数据采集接口,京东商品详情接口,淘宝商品详情接口,整店商品采集上传接口)接口代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970 ...

  4. 【商品架构day3】京东商品系统的演进之路 - 如何抗住亿级流量

    本文来自京东尤凤凯老师的分享.商品,黄金交易流程最基础.最核心的环节,无商品不电商.商品数据无处不在,商家(采销.供应商)发布管理.供应商下采购单.仓储配送.促销.搜索.商详页展现.购物支付.财务结算 ...

  5. python爬虫电商京东_python爬虫-京东商品爬取

    京东商品爬取 仅供学习 一.使用selenium from selenium import webdriver from selenium.webdriver.common.keys import K ...

  6. 通过京东商品ID获取京东商品评论数据,京东商品评论API接口,接口说明接入方案

    一.京东商品详情评论接口数据接口参数说明: 1.通过京东商品ID获取京东商品评论数据,可以获取到获得JD商品评论,评论内容,评论日期,评论图片 ,买家昵称,评论商品属性,追评内容等页面上面的数据均可以 ...

  7. python计算生态规模_Python计算生态的构建

    本专题的内容结构: 第一部分主要是:如何编写Python第三方库(包和模块) 第二部分主要是:如何编写带有c语言扩展的Python第三方库(包和模块) 第一部分的结构: unit1:深入理解Pytho ...

  8. python计算圆周率近似值_python计算圆周率pi的方法

    本文实例讲述了python计算圆周率pi的方法.分享给大家供大家参考.具体如下: from sys import stdout scale = 10000 maxarr = 2800 arrinit ...

  9. python计算excel平均值_python计算excel平均值和标准差

    ############################################## ######## python计算excel平均值和标准差 ####### ############### ...

最新文章

  1. SQL SERVER 2008权限配置
  2. Java学习笔记28
  3. php多选批量修改数据库数据类型有哪些_php面试题之memcache和redis的区别
  4. LeetCode动态规划 跳跃游戏II
  5. java 如何重写迭代器,如何用Java按需定制自己的迭代器
  6. 奈飞文化手册_奈飞文化手册学习笔记
  7. C++学习:第一章 开始
  8. 2012-11-26 → 2012-12-02 周总结:项目又有新需求了,很兴奋
  9. LINUX最好用查看端口占用并杀死(kill)的方式
  10. php 单位食堂订餐,机关单位食堂订餐系统
  11. 计算机专业会学计量经济学吗,计量经济学的论文
  12. Nginx搭建虚拟域名
  13. 通用计算机指令,计算机移位指令
  14. python实现合并多个excel中同名的sheet
  15. ultraedit删除重复项_如何去除文本中的重复行?UltraEdit、Excel去重复方法分享
  16. C# 中DataGridView 表头设置
  17. RPM REBUILD
  18. 剑指spring源码(三)
  19. 阿里巴巴 OSS与AWS(亚马逊) S3 和腾讯云cos 存储服务 介绍篇
  20. 项目(二)Lenovo商城

热门文章

  1. 调用拷贝构造函数的场景
  2. JMeter(五)--检查点
  3. 怎么给没链接的flash加超链接
  4. [名人观点--刘振飞] bug管理
  5. Android 异步获取网络图片并处理图片Out Of Memory 内存溢出问题
  6. 从RDS中获取binlog
  7. SpringMVC框架搭建
  8. android app resign之后安装提示INSTALL_PARSE_FAILED_NO_CERTIFICATES的解决办法
  9. php 连接 sqlserver
  10. velocity 时间显示 时间格式化 时间转化