赞
踩
import os
import time
import pickle
from time import sleep
from selenium import webdriver
第一步,实现免登录
=========
# 大麦网主页
damai_url = “https://www.damai.cn/”
login_url = “https://passport.damai.cn/login?ru=https%3A%2F%2Fwww.damai.cn%2F”
target_url = 'https://detail.damai.cn/item.htm?spm=a2oeg.search_category.0.0.77f24d15RWgT4o&id=654534889506&clicktitle=%E5%A4%A7%E4%BC%97%E7
class Concert:
def __init__(self):
self.status = 0 # 状态,表示如今进行到何种程度
self.login_method = 1 # {0:模拟登录,1:Cookie登录}自行选择登录方式
self.driver = webdriver.Chrome(executable_path=‘chromedriver.exe’) # 默认Chrome浏览器
def set_cookie(self):
self.driver.get(damai_url)
print(“###请点击登录###”)
while self.driver.title.find(‘大麦网-全球演出赛事官方购票平台’) != -1:
sleep(1)
print(‘###请扫码登录###’)
while self.driver.title != ‘大麦网-全球演出赛事官方购票平台-100%正品、先付先抢、在线选座!’:
sleep(1)
print(“###扫码成功###”)
pickle.dump(self.driver.get_cookies(), open(“cookies.pkl”, “wb”))
print(“###Cookie保存成功###”)
self.driver.get(target_url)
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’):
self.set_cookie()
else:
self.driver.get(target_url)
self.get_cookie()
def enter_concert(self):
“”“打开浏览器”“”
print(‘###打开浏览器,进入大麦网###’)
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
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。