tychxn / jd-assistant

京东抢购助手:包含登录,查询商品库存/价格,添加/清空购物车,抢购商品(下单),查询订单等功能
MIT License
5.14k stars 1.92k forks source link

抢购有和我一样的问题的么? #167

Open 17091002603 opened 3 years ago

17091002603 commented 3 years ago

2020-12-29 10:00:04,020 INFO: 登录成功 D:\download\jd-assistant-master\mainQg.py:23: DeprecationWarning: Call to deprecated function exec_seckill. asst.exec_seckill(sku_id=sku_ids) 2020-12-29 10:00:04,021 INFO: 第[1/4]次尝试抢购商品:100012043978 D:\download\jd-assistant-master\jd_assistant.py:1303: DeprecationWarning: Call to deprecated function request_seckill_url. self.request_seckill_url(sku_id) D:\download\jd-assistant-master\jd_assistant.py:1134: DeprecationWarning: Call to deprecated function _get_seckill_url. self.seckill_url[sku_id] = self._get_seckill_url(sku_id) 2020-12-29 10:00:05,110 INFO: 抢购链接获取成功: https://marathon.jd.com/captcha.html?skuId=100012043978&sn=bc054bcf1ab58b399ee5be48a2798b6a&from=pc D:\download\jd-assistant-master\jd_assistant.py:1307: DeprecationWarning: Call to deprecated function submit_seckill_order. if self.submit_seckill_order(sku_id, num): D:\download\jd-assistant-master\jd_assistant.py:1248: DeprecationWarning: Call to deprecated function _gen_seckill_order_data. self.seckill_order_data[sku_id] = self._gen_seckill_order_data(sku_id, num) D:\download\jd-assistant-master\jd_assistant.py:1192: DeprecationWarning: Call to deprecated function _get_seckill_init_info. self.seckill_init_info[sku_id] = self._get_seckill_init_info(sku_id) Traceback (most recent call last): File "D:\download\jd-assistant-master\mainQg.py", line 23, in asst.exec_seckill(sku_id=sku_ids) File "D:\download\jd-assistant-master\util.py", line 208, in new_func return func(*args, kwargs) File "D:\download\jd-assistant-master\jd_assistant.py", line 1307, in exec_seckill if self.submit_seckill_order(sku_id, num): File "D:\download\jd-assistant-master\util.py", line 208, in new_func return func(*args, *kwargs) File "D:\download\jd-assistant-master\jd_assistant.py", line 1248, in submit_seckill_order self.seckill_order_data[sku_id] = self._gen_seckill_order_data(sku_id, num) File "D:\download\jd-assistant-master\util.py", line 208, in new_func return func(args, kwargs) File "D:\download\jd-assistant-master\jd_assistant.py", line 1195, in _gen_seckill_order_data default_address = init_info['addressList'][0] # 默认地址dict KeyError: 'addressList'

luyehui commented 3 years ago

偶尔会有,感觉是cookies的问题

Miki162 commented 3 years ago

重新登陆一下就好了,是没有获取到登录信息,你可以直接调用asst._get_seckill_init_info(sku_id=sku_ids)这个方法,看一下返回值对不对

17091002603 commented 3 years ago

重新登陆一下就好了,是没有获取到登录信息,你可以直接调用asst._get_seckill_init_info(sku_id=sku_ids)这个方法,看一下返回值对不对

我现在调用的是这个方法 asst.exec_seckill(sku_id=sku_ids) 我看到登录信息是存到一个文件里了啊 正常的 商品加购物车 然后提交订单我这是没问题的 (asst.buy_item_in_stock(sku_ids=sku_ids, area=area, wait_all=False, stock_interval=5) # 根据商品是否有货自动下单) 只是抢购不能用

Miki162 commented 3 years ago

image

Miki162 commented 3 years ago

def _get_seckill_init_info(self, sku_id, num=1): """获取秒杀初始化信息(包括:地址,发票,token) :param sku_id: :param num: 购买数量,可选参数,默认1个 :return: 初始化信息组成的dict """ url = 'https://marathon.jd.com/seckillnew/orderService/pc/init.action' data = { 'sku': sku_id, 'num': num, 'isModifyAddress': 'false', } headers = { 'User-Agent': self.user_agent, 'Host': 'marathon.jd.com', } resp = self.sess.post(url=url, data=data, headers=headers) logger.info("获取秒杀初始化信息"+resp.text) return parse_json(resp.text) 你在这个方法里加个打印,然后调用一下这个方法,看一下返回值,他这个是根据你的账号信息去获取的默认地址,跟村的文件没关系

17091002603 commented 3 years ago

def _get_seckill_init_info(self, sku_id, num=1): """获取秒杀初始化信息(包括:地址,发票,token) :param sku_id: :param num: 购买数量,可选参数,默认1个 :return: 初始化信息组成的dict """ url = 'https://marathon.jd.com/seckillnew/orderService/pc/init.action' data = { 'sku': sku_id, 'num': num, 'isModifyAddress': 'false', } headers = { 'User-Agent': self.user_agent, 'Host': 'marathon.jd.com', } resp = self.sess.post(url=url, data=data, headers=headers) logger.info("获取秒杀初始化信息"+resp.text) return parse_json(resp.text) 你在这个方法里加个打印,然后调用一下这个方法,看一下返回值,他这个是根据你的账号信息去获取的默认地址,跟村的文件没关系

试了下 第一次没有获取到我的用户信息 我把cookie文件删除重新扫码登录了下 可以获取到我的 收货信息 2020-12-31 11:22:08,989 INFO: 登录成功 D:\download\jd-assistant-master\mainQg.py:24: DeprecationWarning: Call to deprecated function _get_seckill_init_info. asst._get_seckill_init_info(sku_ids) 2020-12-31 11:22:12,188 INFO: 获取秒杀初始化信息{"addressList":[{"addressDetail":"中关村科技园区光机****","addressName":"XXX","areaCode":"86","cityId":2809,"cityName":

Miki162 commented 3 years ago

那就对了,就是没有用户信息

17091002603 commented 3 years ago

那就对了,就是没有用户信息

那我明天 用之前 在重新 扫码登录下试试 看看还报不报别的错误 你那里代码可以正常抢购是吧?

17091002603 commented 3 years ago

那就对了,就是没有用户信息

方便加个微信不 以后有问题沟通下 哈哈 我的名字是微信号

Miki162 commented 3 years ago

加你了

showtimesKing commented 3 years ago

加你了

一样的问题能给个解决方式吗?

Miki162 commented 3 years ago

加你了

一样的问题能给个解决方式吗?

删除cookie之后重新登录,应该就能解决了