关注“python趣味爱好者”公众号,回复“淘宝口罩”获取源代码

淘宝网淘宝贝,淘宝网里淘口罩


在新型冠状肺炎病毒的影响下,我们每个人都应该佩戴口罩,口罩成了我们日常生活的必需品,今天我们带着爬虫来到某宝的某店铺,看看口罩的库存如何。

首先,我们打开某宝网搜索口罩,随便点一家店铺:


按F12并进入network:

我们在返回的数据里找一找,看看库存放在哪个文件里:

这个initltem开头的文件返回了一个json串:

我们解析一下,发现格式不太对,多了setMdskip和前后两个括号,用strip()函数去掉就可以了:

 response = response.strip()response = response.strip("setMdskip")response = response.strip()response = response.strip("()")

我们仔细看一下这个json串:

库存编号里,显示不隐藏,总数量6166,与页面显示的一致,没错,这就是我们想要的数据,现在我们来获取一下:

右键并复制到这里:
https://curl.trillworks.com/

返回的即为python代码:

import requestsheaders = {'authority': 'mdskip.taobao.com','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36','sec-fetch-dest': 'script','accept': '*/*','sec-fetch-site': 'cross-site','sec-fetch-mode': 'no-cors','referer': 'https://detail.tmall.com/item.htm?id=612119789632&ali_refid=a3_430583_1006:1110588080:N:iK+n44Dtnek1xlEHkCuwGQ==:0e77f5926c5ddb76f2bc2ce63580999c&ali_trackid=1_0e77f5926c5ddb76f2bc2ce63580999c&spm=a230r.1.14.1','accept-language': 'zh-CN,zh;q=0.9','cookie': 'cna=iEuzFcgzMT4CAdJSNcQUf989; thw=cn; hng=CN%7Czh-CN%7CCNY%7C156; tracknick=%5Cu4E0A%5Cu5584%5Cu82E5%5Cu6C341213899; _cc_=WqG3DMC9EA%3D%3D; tg=0; UM_distinctid=16d5937999a6f-027420b0cd4148-5373e62-144000-16d5937999b288; enc=WJvahiK5KEgRjRkHkr4PsVdcvqocsJndj7xM2uXpQI8WMCp19XpDm4tg2kOfsRsB6cxOXkRwnixmXck2lIqicg%3D%3D; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0; ucn=center; t=63d9f6a63545a51298fdf974bc9928a3; cookie2=19514bb0fab9afa6af5793e3509d4293; v=0; _tb_token_=e0d5e3131fee3; _samesite_flag_=true; l=dBagdkj7qSlBFLUsBOCwCARSHL79jIRfgu8NVJK9i_5dK6Y_Eq7OoWkAWFv6cjWcTBTB4dt0anvTgehL8yAm0OpTpe1VivHDBef..; isg=BImJ5oQ0M3YJT8zi9RbaAX1FmLXj1n0IQ_CUTCv-AXCucqiEcyYw2Z2qsNZEKhVA',
}params = (('isUseInventoryCenter', 'false'),('cartEnable', 'true'),('service3C', 'false'),('isApparel', 'false'),('isSecKill', 'false'),('tmallBuySupport', 'true'),('isAreaSell', 'false'),('tryBeforeBuy', 'false'),('offlineShop', 'false'),('itemId', '612119789632'),('showShopProm', 'false'),('isPurchaseMallPage', 'false'),('itemGmtModified', '1582189215000'),('isRegionLevel', 'false'),('household', 'false'),('sellerPreview', 'false'),('queryMemberRight', 'true'),('addressLevel', '2'),('isForbidBuyItem', 'false'),('callback', 'setMdskip'),('timestamp', '1582194247152'),('isg', 'dBOibW8nqSlo-1fJBOfN5ARSHL7twIRb4sPy7r2KlICPOe5eR06PWZVEHCYwCnGVH6mBJ3J6m7-0BeYBqHpDBkyca6Fy_kkqndC..'),('isg2', 'BLi40wKSElVwM32xzZ_qw4hkiWZKIRyr2r_F__IpsfO4DVj3mzA0OugkxQW9XdSD'),('ref', 'https://s.taobao.com/search?q=%E5%8F%A3%E7%BD%A9&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856-taobao-item.1&ie=utf8&initiative_id=tbindexz_20170306'),
)response = requests.get('https://mdskip.taobao.com/core/initItemDetail.htm', headers=headers, params=params)#NB. Original query string below. It seems impossible to parse and
#reproduce query strings 100% accurately so the one below is given
#in case the reproduced version is not "correct".
# response = requests.get('https://mdskip.taobao.com/core/initItemDetail.htm?isUseInventoryCenter=false&cartEnable=true&service3C=false&isApparel=false&isSecKill=false&tmallBuySupport=true&isAreaSell=false&tryBeforeBuy=false&offlineShop=false&itemId=612119789632&showShopProm=false&isPurchaseMallPage=false&itemGmtModified=1582189215000&isRegionLevel=false&household=false&sellerPreview=false&queryMemberRight=true&addressLevel=2&isForbidBuyItem=false&callback=setMdskip&timestamp=1582194247152&isg=dBOibW8nqSlo-1fJBOfN5ARSHL7twIRb4sPy7r2KlICPOe5eR06PWZVEHCYwCnGVH6mBJ3J6m7-0BeYBqHpDBkyca6Fy_kkqndC..&isg2=BLi40wKSElVwM32xzZ_qw4hkiWZKIRyr2r_F__IpsfO4DVj3mzA0OugkxQW9XdSD&ref=https%3A%2F%2Fs.taobao.com%2Fsearch%3Fq%3D%25E5%258F%25A3%25E7%25BD%25A9%26imgfile%3D%26commend%3Dall%26ssid%3Ds5-e%26search_type%3Ditem%26sourceId%3Dtb.index%26spm%3Da21bo.2017.201856-taobao-item.1%26ie%3Dutf8%26initiative_id%3Dtbindexz_20170306', headers=headers)

接着,我们把信息提取一下:

 json_datas = json.loads(response)jsondata = json_datas['defaultModel']['inventoryDO']['icTotalQuantity']

这里有个小技巧,按Ctrl+F可以快速定位到想要的内容,接着,完善一下程序,我们获取系统时间:

localtime = time.asctime( time.localtime(time.time()) )

便于查看是什么时候获取的口罩数量:

print(localtime, "剩余口罩数量:",jsondata)

最后把以上代码写成一个函数,然后在main函数里调用:

def main():while True:get_num()time.sleep(10)if __name__ == '__main__':main()

为了防止服务器封IP,这里我们设置一个缓冲时间

程序运行了半个小时左右:

半个小时内,口罩数量从6619变成了5986,这个销量还是挺高的

最后,想要获取完整代码的同学,欢迎大家关注“python趣味爱好者”公众号,回复“淘宝口罩”获取源代码

实时查询某宝某店铺口罩余量(python爬虫)相关推荐

  1. python爬淘宝店铺_【Python爬虫案例学习】Python爬取淘宝店铺和评论

    安装开发需要的一些库 (1) 安装mysql 的驱动:在Windows上按win+r输入cmd打开命令行,输入命令pip install pymysql,回车即可. (2) 安装自动化测试的驱动sel ...

  2. Python,自己修改的爬取淘宝网页的代码 修改Python爬虫,爬取淘宝商品信息也不报错,也不输出信息的错误

    代码部分: 下面是正确的: import requests import redef getHTMLText(url):try:r = requests.get(url, timeout = 30)r ...

  3. 淘宝天猫店铺优惠券领取入口在哪里找到怎么领天猫淘宝店铺优惠券享受券后价优惠?

    什么是淘宝天猫店铺优惠券? 淘宝天猫店铺优惠券是商家为了举办活动通过不同的渠道发放的无门槛优惠券.满减优惠券等统称为淘宝天猫店铺优惠券,通过草柴APP可查询领取到淘宝天猫内部隐藏的店铺优惠券,领取成功 ...

  4. 淘宝/天猫店铺oAuth2.0接口:Taobao.user.seller.get 查询淘宝卖家用户信息接口接入说明

    淘宝/天猫店铺oAuth2.0接口:Taobao.user.seller.get 查询淘宝卖家用户信息接口接入说明: 为了进行电商平台淘宝的API开发,首先我们需要做下面几件事情: 1)开发者注册一个 ...

  5. 淘宝/天猫店铺oAuth2.0订单同步接口:Taobao.user.seller.get 查询淘宝卖家用户信息接口接入说明

    淘宝/天猫店铺oAuth2.0接口:Taobao.user.seller.get 查询淘宝卖家用户信息接口接入说明: 为了进行电商平台淘宝的API开发,首先我们需要做下面几件事情: 1)开发者注册一个 ...

  6. 淘宝天猫店铺微信公众平台建设指南

    作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-taobao-tmall.html 微信公众平台对接淘宝天猫店铺 淘宝天猫对接微信公众平台 本文 ...

  7. 淘宝卖家店铺订单API接口同步方案

    获取淘宝卖家店铺订单背景: 订单是卖家的核心数据,卖家的很多日常工作都是围绕着订单展开,应用的基本功能就是要保证订单实时.完整的展示在卖家面前.由于API请求依赖于网络,存在 着网络不稳定和同步时间长 ...

  8. 软件质量保重与测试期末,保重啊!PM2.5实时查询软件App大集合

    不知道大家最近有没留意新闻,是的,PM2.5又来了.随着中国城市化的进程加快,环境污染的问题也日趋严重.继北京之后,近日江苏和上海都爆出PM2.5超标的信息.这对于像小编这样的普通民众来说,上街还是必 ...

  9. Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置

    之前我们讨论过<Linux Oracle 11g dataguard物理standby 配置过程>, 但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种 ...

最新文章

  1. web.config配置
  2. 支持Android4.0以下webp的使用
  3. 【ABAP】SAP供应商自定义决裁生成实现
  4. 一些javascript免费中文书籍
  5. 剑指offer之 旋转数组的最小数字
  6. git版本回退:error: Your local changes to the following files would be overwritten by merge
  7. 同心圆的画法_BIM微课堂:一种简单的顶管中继间画法
  8. 开发效率不高?强烈推荐这十款精选IDEA插件
  9. 建站篇-数据库-修改默认users表
  10. 手机窃取PC信息,APT基础。
  11. @HTML.RadioButtonFor和@Html.DropDownList用法
  12. 云计算机教室优缺点,云教室和传统机房的区别,终于有人把它说清了
  13. 服装行业进销存软件有哪些简单好用又便宜的?
  14. 注塑机自学习排程,遗传算法排程,注塑工单排计划,模具排单,注塑APS
  15. 大一下学期第十一周及以前学习总结
  16. py实现外星人入侵(二次开发)——2.添加音乐
  17. java好学么_java是什么好学吗?难不难学?
  18. Python 错题本
  19. 小红书数据分析在哪看?小红书品牌,如何拥抱Z世代?
  20. 摸鱼软件1:自动抓屏截图PPT软件

热门文章

  1. Python实现文件选取和路径打印
  2. ip地址中斜杠(/)含义
  3. C#调用百度api,根据经度和纬度获取地理位置信息
  4. python--ant环境搭建
  5. 艾美捷Annexin V-FITC凋亡检测试剂盒流式细胞术方案
  6. 纯前端(HTML+CSS)实现上传图片前预览功能
  7. 富斯,迈克,天地飞4合1接收机说明书
  8. 特定用语检测 java_留学作业Movie Review的特定术语有哪些?
  9. 首先定义一个Point (点)类,包含属性x,y(x,y为坐标点),方法有setPoint、getX、getY和OprintInfo...python编程题练习
  10. Mac 系统下载并且安装 DBeaver