100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python京东预约抢购_Python参考代码:京东抢券脚本

python京东预约抢购_Python参考代码:京东抢券脚本

时间:2019-03-23 17:36:34

相关推荐

python京东预约抢购_Python参考代码:京东抢券脚本

一、参数获取

要实现发送请求抢券,需要获取券的URL,并定制请求头Request Headers,下面所有参数都来自Chrome的开发者工具。大多浏览器都有开发者工具,可以按需选择。

准备步骤:登录网站——进入抢券页面——打开开发者工具(Chrome的快捷键是F12)——切换到Network栏

在上面准备步骤的基础上,点击想要抢的券,这时Name栏底部会出现一个新的链接,点击这个链接,而我们需要的参数就来自Header中,复制Request URL:https://act-/couponSend.html? ......

获取Cookie:

也是在上面这个页面中,下翻在Request Header中,有一个Cookie的参数,复制下来

ipLoc-djd=1-72-2799-0; ipLocation=%u5317%u4EAC; areaId=1; ......

获取券的Referer:复制Referer参数

/act/hznk5FbYfOTiEp.html

有些时候要同时抢几张券,所以把参数改成了列表

# 券的URL

requestUrls = ["https://act-/couponSend.html?callback=jQuery2891171&roleId=8781460&key=48b40c64619a4bc9a3912c98d5a94fed&_=1510055639531","https://act-/couponSend.html?callback=jQuery6218594&roleId=8725660&key=a606cfe7c5b045d1b5e58b43a59fd9b1&_=1510056463018"]

# 券的Referer

referers = ["/act/bD1USlOE8n.html","/act/bD1USlOE8n.html"]

# 如果到预定时间就开始发送请求,然后打印结果

if now == scheduled_time:

for i in range(len(requestUrls)):

session.headers['Referer'] = referers[i]

r = session.get(requestUrls[i])

print(r.text)

break

二、参考代码1

import requests

import datetime

# 抢券的时间

scheduled_time = "-11-07 22:00"

# 券的URL

requestUrls = ["https://act-/couponSend.html?callback=jQuery8299904&roleId=8875111&key=a9185b7963d74999bdfde0ab214b31bb&_=1510062919603","https://act-/couponSend.html?callback=jQuery9197213&roleId=8817197&key=7b9cef8b76f64c3ba2474e810382d69b&_=1510062967022"]

# 券的Referer

referers = ["/act/bD1USlOE8n.html","/act/bD1USlOE8n.html"]

# 浏览器及版本

user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'

# 将cookie转为字典

def get_cookie():

with open("cookie.txt") as f:

cookies = {}

for line in f.read().split(';'):

name, value = line.strip().split('=', 1)

cookies[name] = value

return cookies

# 配置Session的参数

session = requests.Session()

session.headers['User-Agent'] = user_agent

session.cookies = requests.utils.cookiejar_from_dict(get_cookie())

# 开始抢券

def getCoupon():

print('等待抢券中......')

while (True):

# 当前时间

now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')

# 如果到预定时间就开始发送请求,然后打印结果

if now == scheduled_time:

for i in range(len(requestUrls)):

session.headers['Referer'] = referers[i]

r = session.get(requestUrls[i])

print(r.text)

break

if __name__ == '__main__':

getCoupon()

三、参考代码2

#coding:utf-8

#import scrapy

from selenium import webdriver

import time

import datetime

class JDQUAN(object):

def __init__(self,url):

self.driver=webdriver.Firefox()

self.driver.get(url)

def login_jd(self,num,pwd):

self.driver.find_element_by_link_text('你好,请登录').click()

time.sleep(5)

self.driver.find_element_by_link_text('账户登录').click()

time.sleep(3)

self.driver.find_element_by_id('loginname').send_keys(num)

self.driver.find_element_by_id('nloginpwd').send_keys(pwd)

time.sleep(3)

self.driver.find_element_by_id('loginsubmit').click()

def buy_on_time(self,buytime,quan_link):

while True:

now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

pre = datetime.datetime.strptime(buytime, '%Y-%m-%d %H:%M:%S') - datetime.timedelta(seconds=40)

pre = pre.strftime('%Y-%m-%d %H:%M:%S')

if pre == now:

self.driver.refresh()

if now == buytime:

#self.driver.find_element_by_class_name(quan_link).click()

self.driver.get(quan_link)

time.sleep(3)

print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

print('successful!!!')

break

def start(self,buytime,quan_link):

num='****'

pwd='********'

self.login_jd(num,pwd)

self.buy_on_time(buytime,quan_link)

jd=JDQUAN('/act/L8mwRbMeIap3kCAg.html')

jd.start('-01-24 20:05:00','/ilink/couponSendFront/send_index.action?key=3472bd7400804b01b6d5bd8162289d85&roleId=10117929&to=/act/L8mwRbMeIap3kCAg.html')

#超市

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。