找回密码
 会员注册
查看: 27|回复: 0

2024年Python最全用Python制作一个自动抢票脚本_python抢票脚本,Python面试项目全代码

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
64413
发表于 2024-9-2 22:06:06 | 显示全部楼层 |阅读模式
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!classConcert:def__init__(self):self.status=0#状态,表示如今进行到何种程度self.login_method=1#{0:模拟登录,1:Cookie登录}自行选择登录方式self.driver=webdriver.Chrome(executable_path='chromedriver.exe')#默认Chrome浏览器123456登录调用设置cookiedefset_cookie(self):self.driver.get(damai_url)print("###请点击登录###")whileself.driver.title.find('大麦网-全球演出赛事官方购票平台')!=-1:sleep(1)print('###请扫码登录###')whileself.driver.title!='大麦网-全球演出赛事官方购票平台-100%正品、先付先抢、在线选座!':sleep(1)print("###扫码成功###")pickle.dump(self.driver.get_cookies(),open("cookies.pkl","wb"))print("###Cookie保存成功###")self.driver.get(target_url)1234567891011121314获取cookiedefget_cookie(self):try:cookies=pickle.load(open("cookies.pkl","rb"))#载入cookieforcookieincookies:cookie_dict={'domain':'.damai.cn',#必须有,不然就是假登录'name':cookie.get('name'),'value':cookie.get('value')}self.driver.add_cookie(cookie_dict)print('###载入Cookie###')exceptExceptionase:print(e)1234567891011121314登录deflogin(self):ifself.login_method==0:self.driver.get(login_url)#载入登录界面print('###开始登录###')elifself.login_method==1:ifnotos.path.exists('cookies.pkl'):#如果不存在cookie.pkl,就获取一下self.set_cookie()else:self.driver.get(target_url)self.get_cookie()1234567891011121314打开浏览器defenter_concert(self):"""打开浏览器"""print('###打开浏览器,进入大麦网###')#self.driver.maximize_window()#最大化窗口#调用登陆self.login()#先登录再说self.driver.refresh()#刷新页面self.status=2#登录成功标识print("###登录成功###")#后续德云社可以讲ifself.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()12345678910111213第二步,抢票并下单判断元素是否存在defisElementExist(self,element):flag=Truebrowser=self.drivertry:browser.find_element_by_xpath(element)returnflagexcept:flag=Falsereturnflag1234567891011选票操作defchoose_ticket(self):ifself.status==2:#登录成功入口print("="*30)print("###开始进行日期及票价选择###")whileself.driver.title.find('确认订单')==-1:#如果跳转到了订单结算界面就算这步成功了,否则继续执行此步try:buybutton=self.driver.find_element_by_class_name('buybtn').textifbuybutton=="提交缺货登记":#改变现有状态self.status=2self.driver.get(target_url)print('###抢票未开始,刷新等待开始###')continueelifbuybutton=="立即预定":self.driver.find_element_by_class_name('buybtn').click()#改变现有状态self.status=3elifbuybutton=="立即购买":self.driver.find_element_by_class_name('buybtn').click()#改变现有状态self.status=4#选座购买暂时无法完成自动化elifbuybutton=="选座购买":self.driver.find_element_by_class_name('buybtn').click()self.status=5except:print('###未跳转到订单结算界面###')title=self.driver.titleiftitle=='选座购买':#实现选座位购买的逻辑self.choice_seats()eliftitle=='确认订单':whileTrue:#如果为确认订单print('waiting......')ifself.isElementExist('//*[@id="container"]/div/div[9]/button'):self.check_order()break123456789101112131415161718192021222324252627282930313233343536373839选择座位defchoice_seats(self):whileself.driver.title=='选座购买':whileself.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]/divwhileself.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()12345678910下单操作defcheck_order(self):ifself.statusin[3,4,5]:print('###开始确认订单###')try:#默认选第一个购票人信息self.driver.find_element_by_xpath('//*[@id="container"]/div/div[2]/div[2]/div[1]/div/label').click()exceptExceptionase:print("###购票人信息选中失败,自行查看元素位置###")print(e)#最后一步提交订单time.sleep(0.5)#太快会影响加载,导致按钮点击无效self.driver.find_element_by_xpath('//div[@class="w1200"]//div[2]//div//div[9]//button[1]').click()12345678910111213抢票完成,退出deffinish(self):self.driver.quit()**(1)Python所有方向的学习路线(新版)**这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。最近我才对这些路线做了一下新的更新,知识体系更全面了。![在这里插入图片描述](https://img-blog.csdnimg.cn/1f807758e039481fa866130abf71d796.png#pic_center)**(2)Python学习视频**包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。![在这里插入图片描述](https://img-blog.csdnimg.cn/d66e3ad5592f4cdcb197de0dc0438ec5.png#pic_center)**(3)100多个练手项目**我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。![在这里插入图片描述](https://img-blog.csdnimg.cn/f5aeb4050ab547cf90b1a028d1aacb1d.png#pic_center)**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。****[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)****一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**123456789101112131415161718192021222324252627282930313233343536373839404142
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 22:53 , Processed in 0.609133 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表