演唱会为什么总是抢不到票?用Python做一个自动抢票脚本!想看谁的就看谁的!

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

self.driver.get(target_url)

获取cookie

def get_cookie(self):

try:

cookies = pickle.load(open(“cookies.pkl”, “rb”)) # 载入cookie

for cookie in cookies:

cookie_dict = {

‘domain’:‘.damai.cn’, # 必须有,不然就是假登录

‘name’: cookie.get(‘name’),

‘value’: cookie.get(‘value’)

}

self.driver.add_cookie(cookie_dict)

print(‘###载入Cookie###’)

except Exception as e:

print(e)

登录

def login(self):

if self.login_method==0:

self.driver.get(login_url)

载入登录界面

print(‘###开始登录###’)

elif self.login_method==1:

if not os.path.exists(‘cookies.pkl’):

如果不存在cookie.pkl,就获取一下

self.set_cookie()

else:

self.driver.get(target_url)

self.get_cookie()

打开浏览器

def enter_concert(self):

“”“打开浏览器”“”

print(‘###打开浏览器,进入大麦网###’)

self.driver.maximize_window() # 最大化窗口

调用登陆

self.login() # 先登录再说

self.driver.refresh() # 刷新页面

self.status = 2 # 登录成功标识

print(“###登录成功###”)

后续德云社可以讲

if self.isElementExist(‘/html/body/div[2]/div[2]/div/div/div[3]/div[2]’):

self.driver.find_element_by_xpath(‘/html/body/div[2]/div[2]/div/div/div[3]/div[2]’).click()

第二步,抢票并下单

=========

判断元素是否存在

def isElementExist(self, element):

flag = True

browser = self.driver

try:

browser.find_element_by_xpath(element)

return flag

except:

flag = False

return flag

选票操作

def choose_ticket(self):

if self.status == 2: #登录成功入口

print(“=”*30)

print(“###开始进行日期及票价选择###”)

while self.driver.title.find(‘确认订单’) == -1: # 如果跳转到了订单结算界面就算这步成功了,否则继续执行此步

try:

buybutton = self.driver.find_element_by_class_name(‘buybtn’).text

if buybutton == “提交缺货登记”:

改变现有状态

self.status=2

self.driver.get(target_url)

print(‘###抢票未开始,刷新等待开始###’)

continue

elif buybutton == “立即预定”:

self.driver.find_element_by_class_name(‘buybtn’).click()

改变现有状态

self.status = 3

elif buybutton == “立即购买”:

self.driver.find_element_by_class_name(‘buybtn’).click()

改变现有状态

self.status = 4

选座购买暂时无法完成自动化

elif buybutton == “选座购买”:

self.driver.find_element_by_class_name(‘buybtn’).click()

self.status = 5

except:

print(‘###未跳转到订单结算界面###’)

title = self.driver.title

if title == ‘选座购买’:

实现选座位购买的逻辑

self.choice_seats()

elif title == ‘确认订单’:

while True:

如果标题为确认订单

print(‘waiting …’)

if self.isElementExist(‘//*[@id=“container”]/div/div[9]/button’):

self.check_order()

break

选择座位

def choice_seats(self):

while self.driver.title == ‘选座购买’:

while self.isElementExist(‘//*[@id=“app”]/div[2]/div[2]/div[1]/div[2]/img’):

座位手动选择 选中座位之后//*[@id=“app”]/div[2]/div[2]/div[1]/div[2]/img 就会消失

print(‘请快速的选择您的座位!!!’)

消失之后就会出现 //*[@id=“app”]/div[2]/div[2]/div[2]/div

while self.isElementExist(‘//*[@id=“app”]/div[2]/div[2]/div[2]/div’):

找到之后进行点击确认选座

self.driver.find_element_by_xpath(‘//*[@id=“app”]/div[2]/div[2]/div[2]/button’).click()

下单操作

def check_order(self):

if self.status in [3,4,5]:

print(‘###开始确认订单###’)

try:

默认选第一个购票人信息

self.driver.find_element_by_xpath(‘//*[@id=“container”]/div/div[2]/div[2]/div[1]/div/label’).click()

except Exception as e:

print(“###购票人信息选中失败,自行查看元素位置###”)

print(e)

最后一步提交订单

time.sleep(0.5) # 太快会影响加载,导致按钮点击无效

self.driver.find_element_by_xpath(‘//div[@class = “w1200”]//div[2]//div//div[9]//button[1]’).click()

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值