python编程实践
Python入门书籍推荐:《Python编程:从入门到实践》 #生活知识# #编程教程#
python+selenium实现淘宝商品秒杀(新手上路,轻点喷。2020.7.23)
抢购鞋子,发现那些人下手太快,于是有了自己写一个抢购代码的想法,经过几个小时的折腾,算是拼凑出一个简单的抢购程序。
发个博客,记录一下身为初学者在生活中第一次使用python的经历。
实现功能
在csdn上搜索“淘宝+selenium"有很多大佬给出各式各样的代码,但是没有找到完全适用于目前抢购形式的代码。身为代码的搬运工,我所能做的就是将大佬们的代码进行拼凑,最终代码实现如下功能:
实现自动登录 ;设定时间进行页面刷新 ;页面显示能够秒杀时进行购买 ;购买成功后及时提交订单 ;具体代码
初始化代码
options = webdriver.ChromeOptions() # 不加载图片,加快访问速度 #options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium options.add_experimental_option('excludeSwitches', ['enable-automation']) dir_path=os.getcwd()+'\chromedriver.exe' print(dir_path) sys.path.append(os.getcwd()) driver= webdriver.Chrome(executable_path=dir_path, options=options) 123456789
登录代码
def login(user_name,user_password,address): # 打开淘宝登录页,自动登录 driver.get("https://www.taobao.com") time.sleep(2) if driver.find_element_by_link_text("亲,请登录"): driver.find_element_by_link_text("亲,请登录").click() #账户名 user = driver.find_element_by_id("fm-login-id") user.send_keys(user_name) #账户密码 password = driver.find_element_by_id("fm-login-password") password.send_keys(user_password) #滑块滑动 iframe = driver.find_element_by_xpath('//iframe') # 找到“嵌套”的iframe driver.switch_to.frame(iframe) sli_ele = driver.find_element_by_id("nc_1_n1z") action = ActionChains(driver) action.click_and_hold(sli_ele).perform() action.move_by_offset(300, 0).perform() time.sleep(2) driver.switch_to.default_content() driver.find_element_by_xpath('//div[@class ="fm-btn"]/button').click() time.sleep(3) # 这里写你需要抢购商品的链接地址 driver.get(address) time.sleep(1)
1234567891011121314151617181920212223242526'购买代码
def buy(buytime): while True: now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') if now >= buytime: try: if driver.find_element_by_link_text("立即购买"): driver.find_element_by_link_text("立即购买").click() break except: driver.refresh() time.sleep(0.0001) 1234567891011'
2020年7月4日功能更新
添加弹窗自己输入相关信息,使用pyinstaller将程序打包成.exe文件。该项目实践目前就到这了,有时间再继续完善。
app = Tk() app.withdraw() user_name = askstring(title="此应用仅供学习交流,不用于商业用途", prompt="请输入您的个人淘宝账号") user_password = askstring(title="此应用仅供学习交流,不用于商业用途", prompt="请输入您的个人淘宝密码") app.destroy() 12345
这段支付宝密码输入代码没有进行测试,感兴趣的可以尝试一下。
while True: try: if driver.find_element_by_id("payPassword_rsainput"): driver.find_element_by_id("payPassword_rsainput").send_keys(pay_password) print("密码输入成功") break except: time.sleep(0.0001) 12345678
暂时就这样吧
2020年8月6日更新
昨天晚上买东西试了试软件突然发现软件中用于实现淘宝登陆的滑块滑动功能无法使用总是报错导致软件无法登录,暂时没有好的解决方法进行解决,只能采用扫码登录的方法,虽然在过程中需要使用手机,但是这种方法稳定也省去了输入账号,密码的麻烦.
def login(): # 打开淘宝登录页,并进行扫码登录 driver.get("https://www.taobao.com") time.sleep(3) if driver.find_element_by_link_text("亲,请登录"): driver.find_element_by_link_text("亲,请登录").click() if driver.find_element_by_xpath('//i[@class ="iconfont icon-qrcode"]'): driver.find_element_by_xpath('//i[@class ="iconfont icon-qrcode"]').click() app = Tk() app.withdraw() showinfo('此应用仅供学习交流,不用于商业用途','请在10秒内扫码登录') app.destroy() time.sleep(10) 12345678910111213'
京东秒杀与淘宝类似,只是步骤不同
不同之处代码如下:
while True: now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') if now >= buytime: print("时间到了") try: if driver.find_element_by_link_text("加入购物车"): driver.find_element_by_link_text("加入购物车").click() print("加入购物车成功") break except: driver.refresh() print("刷新") time.sleep(0.0001) while True: try: if driver.find_element_by_link_text("去购物车结算"): driver.find_element_by_link_text("去购物车结算").click() print("进入购物车成功,等待结算") break except: time.sleep(0.0001) while True: try: if driver.find_element_by_link_text("去结算"): driver.find_element_by_link_text("去结算").click() print("结算成功,等待支付") break except: time.sleep(0.0001) while True: try: if driver.find_element_by_id("quark-pw-result"): driver.find_element_by_id("quark-pw-result").send_keys(pay_password) print("密码输入成功") break except: time.sleep(0.0001) print("密码输入错误") while True: try: if driver.find_element_by_link_text("提交订单"): driver.find_element_by_link_text("提交订单").click() print("确认付款成功,订单已完成") break except: time.sleep(0.0001)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546打包的程序下载地址:
taoBao.zip
https://download.csdn.net/download/han_100896/12691113
[主要借鉴”路人7“老哥的这篇文章]
https://blog.csdn.net/wc15982224307/article/details/106083280
网址:python编程实践 https://www.yuejiaxmz.com/news/view/174992
相关内容
高效Python工作流自动化:简化开发流程的最佳实践Python编程实现ChatGPT智能冰箱食谱生成与烹饪控制
Python实现简单算法乘法:提升编程效率与逻辑思维
解码室内温度,Python编程轻松实现家居舒适度掌控
Python实现经典还钱问题算法:优化财务管理的编程技巧
掌握Python,高效生活:揭秘5个实用脚本,轻松解决日常编程难题!
最受欢迎的11个Python编程软件,工作效率直接起飞!
高效时间管理:Python编程助力职场与家庭生活平衡之道
AppTask: 使用Python实现日常APP任务自动化
Python编程轻松打造个人电话本:一键管理,高效沟通不再难