前言某宝剧本一搜能搜一大堆,就是不晓得具体有没有用,可是这款某东的代码于11-17还是可用的,大师拿去白嫖吧! 编辑 需要用到的一些工具Python版本:3.7.8相关模块: DecryptLogin模块; argparse模块; requests模块; pyttsx3模块; beautifulsoup4模块; prettytable模块; 以及一些python自带的模块。 情况搭建安装Python并增加到情况变量,pip安装需要的相关模块即可。 具体而言,就是先用DecryptLogin实现京东商城的模拟登录操纵,然后再查询登录账号的购物车中的商品信息,接着打印这些商品信息供用户挑选需要抢购的商品,最初用法式实现自动下单抢购方针商品。 由于全部逻辑很简单,也没有斟酌一些能够存在的异常情况(究竟只是一个简单的小案例,首要目标还是进修python和爬虫),所以整体实现起来实在蛮简单的。首先pip安装一下DecryptLogin包: pip install DecryptLogin具体而言,就是先用DecryptLogin实现京东商城的模拟登录操纵,然后再查询登录账号的购物车中的商品信息,接着打印这些商品信息供用户挑选需要抢购的商品,最初用法式实现自动下单抢购方针商品。 由于全部逻辑很简单,也没有斟酌一些能够存在的异常情况(究竟只是一个简单的小案例,首要目标还是进修python和爬虫),所以整体实现起来实在蛮简单的。首先pip安装一下DecryptLogin包: pip install DecryptLogin然后简单几行代码就能实现京东商城的模拟登录操纵啦: from DecryptLogin import login'''模拟登录''' def login(self): lg = login.Login() infos_return, session = lg.jingdong() return infos_return, session 别的,为了避免经常需要反复扫码登录的题目,我加了个导入历史cookies的代码段(淘宝抢购阿谁剧本也有): if os.path.isfile(cookie_cache_name):self.session = requests.Session() loadSessionCookies(self.session, cookie_cache_name) else: self.infos_return, self.session = self.login() saveSessionCookies(self.session, cookie_cache_name) 可是没有加考证cookies能否还在有用期内的代码,感爱好的同学可以自己增加一下,不感爱好的同学每次过段时候代码报错就自己手动删下: cookie_cache.pkl这个文件吧,作为怠惰的赏罚吧,就在你运转代码的阿谁文件夹里。 接着,我们来获得一下当前购物车里的商品信息,和之前一样,简单抓包的成果以下: 编辑 代码实现以下: cart_url = 'https://api.m.jd.com/api?'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) APPleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36', 'origin': 'https://cart.jd.com', 'Referer': 'https://cart.jd.com', } data = { 'functionId': 'pcCart_jc_getCurrentCart', 'appid': 'JDC_mall_cart', 'loginType': '3', } response = self.session.post(cart_url, headers=headers, data=data) print(response.text) 编辑 看起来没什么题目,把我们需要的数据提取出来: response_json, cart_infos = response.json(), {}for idx, item in enumerate(response_json['resultData']['cartInfo']['vendors']): cart_info = { 'title': self.rematch(r"'Name': '(.*?)',", str(item)), 'Id': item['sorted'][0]['item']['Id'], 'skuUuid': self.rematch(r"'skuUuid': '(.*?)',", str(item)), 'IdForOldVersion': self.rematch(r"'IdForOldVersion': (.*?),", str(item)), 'SType': '11', } cart_infos[str(idx)] = cart_info 接着打印并让用户挑选想要抢购的商品信息: # 打印并挑选想要抢购的商品信息title, items = ['id', 'title'], [] for key, value in cart_infos.items(): items.append([key, value['title']]) self.printTable(title, items) good_id = input('请挑选想要抢购的商品编号(例如"0"): ') assert good_id in cart_infos, '输入的商品编号有误' 结果大如果这样子的: 编辑 最初按照用户的挑选成果停止下单就ok啦,下单相关的代码实现以下: '''采办商品'''def buygood(self, good_info): # 取消勾选购物车中的一切商品 url = 'https://cart.jd.com/cancelAllItem.action' data = { 't': 0, 'outSkus': '', 'random': random.random(), } response = self.session.post(url, data=data) # 勾选指定商品商品 url = 'https://api.m.jd.com/api' body = '{"operations":[{"ThePacks":[{"num":1,"sType":%s,"Id":%s,"TheSkus":[{"num":1,"Id":"%s","skuUuid":"%s","useUuid":false}]}]}]}' % \ (good_info['SType'], good_info['Id'], good_info['IdForOldVersion'], good_info['skuUuid']) data = { 'functionId': 'pcCart_jc_cartCheckSingle', 'appid': 'JDC_mall_cart', 'body': body, 'loginType': '3', } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36', 'origin': 'https://cart.jd.com', 'Referer': 'https://cart.jd.com', } response = self.session.post(url, data=data, headers=headers) # 获得定单结算页面信息 url = 'http://trade.jd.com/shopping/order/getOrderInfo.action' params = { 'rid': str(int(time.time() * 1000)), } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Referer': 'https://cart.jd.com/cart.action', 'Connection': 'keep-alive', 'Host': 'trade.jd.com' } response = self.session.get(url=url, params=params, headers=headers) if '革新太频仍了' in response.text: print(f'[{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} INFO]: 革新太频仍了') raise RuntimeError('革新太频仍了') if response.status_code != requests.codes.OK: print(f'[{time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())} INFO]: 当前请求存在毛病') raise RuntimeError('当前请求存在毛病') soup = BeautifulSoup(response.text, 'html.parser') risk_control = soup.select('input#riskControl')[0].get('value').strip(' \t\r\n') order_detail = { 'address': soup.find('span', id='sendAddr').text[5:], 'receiver': soup.find('span', id='sendMobile').text[4:], 'total_price': soup.find('span', id='sumPayPriceId').text[1:], 'items': [] } # 提交定单 url = 'https://trade.jd.com/shopping/order/submitOrder.action' data = { 'overseaPurchaseCookies': '', 'vendorRemarks': '[]', 'submitOrderParam.sopNotPutInvoice': 'false', 'submitOrderParam.trackID': 'TestTrackId', 'submitOrderParam.ignorePriceChange': '0', 'submitOrderParam.btSupport': '0', 'riskControl': order_detail, 'submitOrderParam.isBestCoupon': '1', 'submitOrderParam.jxj': '1', 'submitOrderParam.trackId': '9643cbd55bbbe103eef18a213e069eb0', 'submitOrderParam.needCheck': '1', } if self.paywd is not None: data['submitOrderParam.payPassword'] = ''.join(['u3' + x for x in self.paywd]) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36', 'Host': 'trade.jd.com', 'Referer': 'http://trade.jd.com/shopping/order/getOrderInfo.action', } response = self.session.post(url=url, data=data, headers=headers) response_json = response.json() if response_json.get('success'): return True return False 终极京东里的结果以下: 编辑 固然这样提醒的结果能够不明显,究竟你不会一向盯着这个终端看,你可以加个语音提醒,代码以下: # 电脑语音提醒for _ in range(5): pyttsx3.speak('已经为您抢购到你所需的商品, 请尽快前往京东完成付款.') 固然,也许你也纷歧定一向在电脑边上,所以你还可以加个server酱提醒,可以在商品抢购成功以后将该消息发送到你的微信上,代码以下: '''发送Server酱提醒'''def pushwechat(self, desp='已经为您抢购到你所需的商品, 请尽快前往京东完成付款.'): server_url = f'https://sc.ftqq.com/{self.server_key}.send' params = { 'text': '商品抢购成功提醒', 'desp': desp, } response = requests.get(server_url, params=params) return response server酱设置地址以下: http://sc.ftqq.com/3.versionok,大功乐成啦,完整源代码关注文末公众号即可 利用方式: usage: jingdongsnap.py [-h] [--interval INTERVAL] [--paywd PAYWD] [--key KEY]京东抢购剧本 optional arguments: -h, --help show this help message and exit --interval INTERVAL 抢购商品时查询商品能否可以采办的时候间隔(单元秒) --paywd PAYWD 付出密码, 部分商品需要付出密码才能提交定单, 输入密码不会致使你间接采办商品, 存候心利用 --key KEY Server酱的Key 结果展现: 快拿去用吧,需要完整代码点这里获得 |
小编在之前就介绍过很多油猴里的神器插件,这里给大家总结几款经典中的经典。01Usersc
shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统
作者:厚昌学院特聘讲师,厚昌学院顾问团队核心成员,从事互联网行业从事互联网行业8
前言「油猴脚本」是一段脚本代码,通过它可以让浏览器实现各种各样的扩展功能,和浏览
shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成
关注扩展迷、喜欢折腾电脑的小伙伴们,应该都对各种各样的浏览器插件不陌生了。浏览器
Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chrome,
油猴脚本管理器的超详细下载安装使用教程——新手必看油猴可以帮你干什么:全网VIP视
参考文章和视频:将iPad作为Mac Mini主屏幕的实现方法视频:无屏自动启动随航 iPad作为M
在运营短视频时,你有没有遇到过这样的问题:1、拍了一半发现拍摄场景不行;2、拍摄过
我们先看一下这个脚本的下载效果。我是100M的宽带,这直接能飙到20MB/s,所以下载速度
写脚本?对于没有视频背景的朋友来说可能就会有疑问,脚本是什么?不应该是电影,电视
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:Stark-C大家好,我是Stark-
初次见面,大家好。相信熟悉浏览器的都知道,尤其是大名鼎鼎的Chrome浏览器,丰富的
从历史上看,shell一直是类Unix系统的原生命令行解释器。多年来,它已被证明是Unix的
有人说,网红行业的现状是江山代有才人出,各领风骚“好几天”。的确,即便是行业顶流
最近115调整了接口,导致115转存助手ui优化版3.8.1版本无法转存或获取SHA1。有大神在
根据第49次《中国互联网络发展状况统计报告》数据,截至2022年12月,我国网络视频(含
Shell脚本编程难,难于上青天!这话不假,尤其很多程序员新人,学了几个月Shell脚本写
在上期我们做了个形象的比喻,把短视频制作比喻成我们造房子,前面我们已经带领大家打
声明:本站内容由网友分享或转载自互联网公开发布的内容,如有侵权请反馈到邮箱 1415941@qq.com,我们会在3个工作日内删除,加急删除请添加站长微信:15314649589
Copyright @ 2022-2044 杭州共生网络 www.gongshengyun.cn Powered by Discuz!