京东商品详细的请求处理,是先显示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爬取京东的商品分类与链接的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要的知识点是使用Python的BeautifulSoup进行多层的遍历。 如图所示。只是一个简单的哈,不是爬取里面的隐藏的东西。 示例代码 运行这段代码以及达到了我们的目的。 我们来解读一下这段代码。 首先我们要访问到京东的首页。 然后通过Beauti
我试图在变体下拉列表中显示产品变体价格。我试图改变默认的行为,当你在下拉列表中选择一个变量时,价格显示在div中。 问题是我找不到那个部门的变动价格。我搜索了所有的javascript,但找不到它 如果我使用: 我只得到所有选项的最小变化价格。我想知道每种变体的价格。有线索吗?
自我介绍 手写SQL,姓名科目成绩,算成绩总分 之前公司的数据中台是什么样的,有什么功能 之前实习的数据指标体系是怎么搭建的,讲一讲细节的内容 你的专业是学什么的 知不知道数据资产是什么,有什么了解 什么时候可以到岗 反问 部门做的产品是什么,主要的工作内容,需求方:数据产品,对接运营采销数据分析师等部门 有没有后续的业务面试?Yes 有没有到岗时间的要求?没有强制要求,但是希望比较早一些 多长时
今天刚面了,还不知道结果,写个面经攒人品 1、自我介绍 2、学业相关,什么专业,专业对你什么帮助,对所学东西有什么认知 (问题太长 达到后面有点忘记问题,只答了专业有哪些内容,我对专业的认知,答得稍微有点碎) 3、介绍你的经历 (我有一年工作经历 呆了两个不同业务,所以说了很久,可能说的有点太细) 4、项目中遇到最大的困难 5、如果还继续做这个项目,你会重点做哪些事情 6、让我打开app看京东里面
1.自我介绍 2.觉得自己学的这个专业对做产品经理有什么优势 3.觉得产品经理在团队中的角色是什么?产品经理和运营和研发的关系是什么? 4.之前实习中有过什么困难,怎么解决的? 5.产品有很多需求,怎么考虑优先级的 6.学校里没有产品经理这个专业,平常是怎么学习产品经理相关知识的 7.反问:作为hr看重面试者哪些能力 对产品的了解,基础知识,学习能力,逻辑判断,综合能力 反问:如果通过的话什么时候
又一次失败的面试经历,面下来的感觉是互相不感兴趣 (不过面试官人还是比较nice),面完系统上直接转推荐了。京东产品运营岗这次的面试问题,基本都是宝洁八大问类型的提问,没有怎么涉及产品运营具体工作相关的问题。下面还是直接上面经[种草R]: 业务面(30mins) 提问环节 自我介绍 过往实习或项目中有没有遇到比较复杂的情况,如何面对这些困难和挑战的? 从过往的项目经验中,有哪些方法沉淀? 专业背景