天猫上的产品价格请求URL的分析过程和爬京东价格的时候是类似的。
通过分析,得到天猫商品价格的请求URL:’https://mdskip.taobao.com/core/initItemDetail.htm?itemId=556708482118(这个是简化之后的,可用)。但是这个网页打开之后出现403 Forbidden 错误。这是因为在发送请求的时候需要添加Referer参数,其格式为“https://detail.tmall.com/item.htm?id=556708482118”。

代码

#-*-coding:utf-8 -*-
import urllib2
import jsondef tmall_price(url):id = url.split("=")[-1]headers = {"Referer": "https://detail.tmall.com/item.htm?id={}".format(id)}request = urllib2.Request(url, headers=headers)response = urllib2.urlopen(request)html = response.read().decode("gbk")result = json.loads(html)price_info = result["defaultModel"]["itemPriceResultDO"]["priceInfo"]print price_info[price_info.keys()[0]]["promotionList"][0]["price"]if __name__=="__main__":url = 'https://mdskip.taobao.com/core/initItemDetail.htm?itemId=556708482118'tmall_price(url)

得到的数据有如下形式:

{u'isSuccess': True,
u'defaultModel': {u'deliveryDO': {u'deliverySkuMap': {u'default': [{u'postage': u'\u5feb\u9012: 0.00 EMS: 0.00 ', u'postageFree': False, u'skuDeliveryAddress': u'\u5e7f\u4e1c\u5e7f\u5dde', u'arrivalNextDay': False, u'type': 0, u'arrivalThisDay': False}]}, u'areaId': 330100, u'destination': u'\u676d\u5dde\u5e02', u'success': True, u'deliveryAddress': u'\u5e7f\u4e1c\u5e7f\u5dde'}, u'doubleEleven2014': {u'showRightRecommendedArea': False, u'halfOffItem': False, u'showAtmosphere': False, u'success': True, u'step': 0, u'doubleElevenItem': False}, u'itemPriceResultDO': {u'areaId': 330100, u'extraPromShowRealPrice': False, u'success': True, u'priceInfo': {u'3446150153619': {u'areaSold': True, u'price': u'399.00', u'promotionList': [{u'status': 2, u'postageFree': False, u'canBuyCouponNum': 0, u'extraPromType': 0, u'price': u'299.00', u'tfCartSupport': False, u'unLogBrandMember': False, u'promType': u'normal', u'amountRestriction': u'', u'amountPromLimit': 0, u'start': False, u'unLogTbvip': False, u'basePriceType': u'IcPrice', u'extraPromTextType': 0, u'startTime': 1497959518000L, u'tmallCartSupport': False, u'endTime': 1530028740000L, u'type': u'\u79cb\u88c5\u4e0a\u65b0', u'unLogShopVip': False, u'limitProm': False}], u'onlyShowOnePrice': False, u'sortOrder': 0}, u'3446150153611': ...,              u'3446150153612': ...,          u'3446150153613': ..., ...u'tmallShopProm': ...

这里关注的只有价格信息,其结构为defaultModel–>itemPriceResultDO–>priceInfo–>3446150153619–>promotionList–>0–>price。

在实际爬取多个产品价格时,还发现另外一种价格信息结构:
defaultModel–>itemPriceResultDO–>priceInfo–>3446150153619–>price。

但是为什么有这么多个价格,3446150153619之类的字符串表示什么??

Python爬虫——实战二:爬取天猫产品价格(逆向工程方法)相关推荐

  1. Python爬虫实战(二):爬取天涯帖子(只看楼主)

    先上代码 #coding=utf-8 import requests from bs4 import Tag from bs4 import BeautifulSoup def getHtml(url ...

  2. 携程ajax,Python爬虫实战之爬取携程评论

    一.分析数据源 这里的数据源是指html网页?还是Aajx异步.对于爬虫初学者来说,可能不知道怎么判断,这里辰哥也手把手过一遍. 提示:以下操作均不需要登录(当然登录也可以) 咱们先在浏览器里面搜索携 ...

  3. Python爬虫实战之爬取网站全部图片(一)

    Python爬虫实战之爬取网站全部图片(二) Python爬虫实战之通过ajax获得图片地址实现全站图片下载(三) 一.获得图片地址 和 图片名称 1.进入网址之后 按F12  打开开发人员工具点击e ...

  4. Python爬虫实战之爬取糗事百科段子

    Python爬虫实战之爬取糗事百科段子 完整代码地址:Python爬虫实战之爬取糗事百科段子 程序代码详解: Spider1-qiushibaike.py:爬取糗事百科的8小时最新页的段子.包含的信息 ...

  5. Python爬虫实战之爬取百度贴吧帖子

    Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...

  6. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

  7. Python爬虫实战:爬取解放日报新闻文章

    上一篇<Python 网络爬虫实战:爬取人民日报新闻文章>发布之后,确实帮到了不少朋友. 前几天,我好哥们问我:我想爬另一个日报新闻网站,网页结构几乎跟人民日报几乎一模一样,但是我用你的那 ...

  8. Python爬虫实战之 爬取全国理工类大学数量+数据可视化

    上次爬取高考分数线这部分收了个尾,今天咱们来全面爬取全国各省有多少所理工类大学,并简单实现一个数据可视化.话不多说,咱们开始吧. 第一步,拿到url地址 第二步,获取高校数据 第三步,地图可视化 第四 ...

  9. Python爬虫实战 | (12) 爬取万方数据库文献摘要并存入MongoDB

    之前在Python爬虫实战(7)中曾爬取过万方,本篇博客的爬取解析过程和之前几乎完全一样,不同的是数据存储方式,之前是存储到文件中(csv,txt,json,excel等),这次我们将提取的论文信息存 ...

最新文章

  1. Linux那些事儿 之 戏说USB(6)好戏开始了
  2. android8.1上musicfx,Android自带音频均衡器MusicFx分析
  3. Silverlight 2.0 RTW 正式版发布(附下载地址)!
  4. 缓存框架(Java缓存)与框架缓存(介绍mybatis缓存)
  5. id文件夹怎样传入服务器,服务器id怎么设置
  6. mariab修改mysql端口_修改mysql/MariaDB数据库的端口号+远程
  7. imessage_重新设计iMessage以获得更好的用户体验— UX案例研究
  8. Windows环境下安装、卸载Apache
  9. 程序员对辉瑞新冠疫苗的计算解读,这些常识可能你也不知道
  10. Linux : rz、sz命令-从本地拷贝文件到服务器
  11. mask层--- ios开发view圆角属性的layer层的实质
  12. MapReduce 1.x VS 2.x架构对比
  13. php 时间戳 24小时制,如何在php中添加24小时的unix时间戳?(How do I add 24 hours to a unix timestamp in php?)...
  14. Thinkpad x230 win7/xp 双系统安装全过程
  15. [Linux]_ELVE_ssh登录远程阿里服务器
  16. 实变函数与泛函分析知识点整理
  17. 如何解决程序员沟通之痛?
  18. 二维码制作软件----如何让二维码内容换行显示
  19. WeUI 简明入门指南
  20. 自定义View之指南针(反编译别人的代码实现)

热门文章

  1. springboot整合mybatis框架,超详细
  2. 最流行的3.5mm耳机接口是咋工作的?
  3. java笔试题大全带答案_java笔试题大全带答案经典11题
  4. c语言纯虚函数,关于c ++:纯虚函数的重载
  5. MATLAB机器人工具箱【3】—— 动力学相关函数及用法
  6. 精准推送服务系统架构设计
  7. Spring boot 集成rocketMQ 官方文档
  8. iOS上线app基本素材和资料
  9. opencv中的copyTo函数在opencv-Python中的实现
  10. CVE-2017-7659(Apache漏洞)