最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python根據(jù)京東商品url獲取產(chǎn)品價(jià)格

 更新時(shí)間:2015年08月09日 17:38:30   投稿:hebedich  
閑著沒(méi)事嘗試抓一下京東的數(shù)據(jù),需要使用到的庫(kù)有:BeautifulSoup,urllib2,在Python2下測(cè)試通過(guò)

京東商品詳細(xì)的請(qǐng)求處理,是先顯示html,然后再ajax請(qǐng)求處理顯示價(jià)格。
1.可以運(yùn)行js,并解析之后得到的html
2.模擬js請(qǐng)求,得到價(jià)格

# -*- coding: utf-8 -*-
"""
根據(jù)京東url地址,獲取商品價(jià)格
京東請(qǐng)求處理過(guò)程,先顯示html頁(yè)面,然后通過(guò)ajax get請(qǐng)求獲取相應(yīng)的商品價(jià)格
 
1.商品的具體數(shù)據(jù)在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請(qǐng)求代碼如下:
# // 獲得數(shù)字價(jià)格
# 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('暫無(wú)報(bào)價(jià)');
#         }
#
#         if ( typeof callback === 'function' ) {
#           callback(sku, price, r);
#         }
#       }
#     }
#   });
# };
"""
import urllib
import json
import re
 
 
class JdPrice(object):
  """
  對(duì)獲取京東商品價(jià)格進(jìn)行簡(jiǎn)單封裝
  """
  def __init__(self, url):
    self.url = url
    self._response = urllib.urlopen(self.url)
    self.html = self._response.read()
 
  def get_product(self):
    """
    獲取html中,商品的描述(未對(duì)數(shù)據(jù)進(jìn)行詳細(xì)處理,粗略的返回str類(lèi)型)
    :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):
    """
    通過(guò)獲取的商品信息,獲取商品的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):
    """
    根據(jù)商品的skuid信息,請(qǐng)求獲得商品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
 
 
# 測(cè)試代碼
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()

再給大家分享一個(gè)京東價(jià)格的爬蟲(chóng):

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)

相關(guān)文章

  • Python在實(shí)時(shí)數(shù)據(jù)流處理中集成Flink與Kafka

    Python在實(shí)時(shí)數(shù)據(jù)流處理中集成Flink與Kafka

    隨著大數(shù)據(jù)和實(shí)時(shí)計(jì)算的興起,實(shí)時(shí)數(shù)據(jù)流處理變得越來(lái)越重要,Flink和Kafka是實(shí)時(shí)數(shù)據(jù)流處理領(lǐng)域的兩個(gè)關(guān)鍵技術(shù),下面我們就來(lái)看看如何使用Python將Flink和Kafka集成在一起吧
    2025-03-03
  • 淺談Python3實(shí)現(xiàn)兩個(gè)矩形的交并比(IoU)

    淺談Python3實(shí)現(xiàn)兩個(gè)矩形的交并比(IoU)

    今天小編就為大家分享一篇淺談Python3實(shí)現(xiàn)兩個(gè)矩形的交并比(IoU),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python簡(jiǎn)單利用字典破解zip文件口令

    python簡(jiǎn)單利用字典破解zip文件口令

    這篇文章主要給大家介紹了關(guān)于python簡(jiǎn)單利用字典破解zip文件口令的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python?中將數(shù)字轉(zhuǎn)換為字母的方法

    Python?中將數(shù)字轉(zhuǎn)換為字母的方法

    本文詳細(xì)介紹了在 Python 中將數(shù)字轉(zhuǎn)換為字母的幾種常用方法,我們介紹了使用 chr() 函數(shù)、string 模塊和 ord() 函數(shù)等方法,并提供了示例代碼幫助你理解和應(yīng)用這些方法,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • 快速進(jìn)修Python指南之異常捕獲

    快速進(jìn)修Python指南之異常捕獲

    這篇文章主要為大家介紹了Java開(kāi)發(fā)者快速進(jìn)修Python指南之異常捕獲,?有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • python matplotlib坐標(biāo)軸設(shè)置的方法

    python matplotlib坐標(biāo)軸設(shè)置的方法

    本篇文章主要介紹了python matplotlib坐標(biāo)軸設(shè)置的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • python 實(shí)現(xiàn)樸素貝葉斯算法的示例

    python 實(shí)現(xiàn)樸素貝葉斯算法的示例

    這篇文章主要介紹了python實(shí)現(xiàn)樸素貝葉斯算法的示例,幫助大家更好的理解和學(xué)習(xí)python 機(jī)器學(xué)習(xí)算法,感興趣的朋友可以了解下
    2020-09-09
  • pandas創(chuàng)建新Dataframe并添加多行的實(shí)例

    pandas創(chuàng)建新Dataframe并添加多行的實(shí)例

    下面小編就為大家分享一篇pandas創(chuàng)建新Dataframe并添加多行的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python使用json序列化datetime類(lèi)型實(shí)例解析

    python使用json序列化datetime類(lèi)型實(shí)例解析

    這篇文章主要介紹了python使用json序列化datetime類(lèi)型實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python如何快速上手? 快速掌握一門(mén)新語(yǔ)言的方法

    Python如何快速上手? 快速掌握一門(mén)新語(yǔ)言的方法

    Python如何快速上手? 這篇文章主要為大家詳細(xì)介紹了快速掌握一門(mén)新語(yǔ)言的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論

惠州市| 双桥区| 东兰县| 徐州市| 雅安市| 花莲市| 双鸭山市| 陕西省| 阜平县| 准格尔旗| 辰溪县| 洛南县| 盘山县| 房产| 泰州市| 永嘉县| 沂水县| 高密市| 南丰县| 石首市| 海宁市| 普洱| 扎赉特旗| 车致| 棋牌| 加查县| 岳池县| 汤阴县| 门头沟区| 普定县| 中山市| 昌图县| 瓮安县| 二连浩特市| 柳州市| 鄂尔多斯市| 靖远县| 兴文县| 吴旗县| 三都| 阆中市|