当前位置:   article > 正文

Edge浏览器驱动selenium自动化操作_edge驱动driver

edge驱动driver

一、前言

        室友的家长喜欢收集纪念币,纪念币是需要预约的,而且每个人同一种货币只能预约一份,如果想要给很多人预约,恐怕要一个一个点,因此,我突然回想起曾经接触过的一个知识——selenium,曾经的回忆涌上心头。

二、材料准备

1、电脑一台(带有pycharm软件)

2、Edge浏览器驱动(对应自己的浏览器版本)

3、验证码识别工具

4、屏幕前的吴彦祖一位

三、材料说明

1、Edge浏览器驱动

驱动下载地址:Microsoft Edge WebDriver | Microsoft Edge Developer
根据自己电脑的操作系统版本或浏览器版本选择对应的驱动版本。

下载完成后,将浏览器驱动放在你的Python当前工程根目录下

2、验证码识别工具

众所周知,有些网站在输入完账号信息后需要输入验证码才可以登录,这个验证码识别工具就可以解决这个问题,我使用的是http://ttshitu.com/这家的工具,需要花好像是1元钱可以识别1000次,用起来很不错,购买后,进入这家的用户文档http://www.ttshitu.com/docs/index.html?spm=null找到自己使用的语言,怎样使用人家都会说明清楚。

四、软件代码

这里我演示用的是https://www.gushiwen.cn/古诗文网

  1. import time
  2. import base64
  3. import json
  4. import requests
  5. from selenium import webdriver
  6. from selenium.webdriver.common.by import By
  7. li = 0
  8. email_list = ['1233211232@qq.com', "1111111111@qq.com", "1234567891@qq.com", "9876543219@qq.com"] # 邮箱库(假的)
  9. code_list = [123456,654321,777777,555555] # 密码库(假的)
  10. def base64_api(uname, pwd, img, typeid):
  11. with open(img, 'rb') as f:
  12. base64_data = base64.b64encode(f.read())
  13. b64 = base64_data.decode()
  14. data = {"username": uname, "password": pwd, "typeid": typeid, "image": b64}
  15. result = json.loads(requests.post("http://api.ttshitu.com/predict", json=data).text)
  16. if result['success']:
  17. return result["data"]["result"]
  18. else:
  19. return result["message"]
  20. return ""
  21. def send_web():
  22. option = webdriver.EdgeOptions()
  23. option.add_experimental_option("detach", True) # 防止浏览器自己关闭
  24. global driver # 声明为全局
  25. driver = webdriver.Edge(options=option)# 防止浏览器自己关闭
  26. driver.get('https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx') # 登录页面网站
  27. def write():
  28. for li in range(len(email_list)):
  29. send_web() # 对登录页面发起请求
  30. time.sleep(2)
  31. email = driver.find_element(By.XPATH, '//*[@id="email"]')
  32. email.send_keys(email_list[li]) # 填入邮箱账号
  33. time.sleep(2)
  34. pwd = driver.find_element(By.XPATH, '//*[@id="pwd"]')
  35. pwd.send_keys(code_list[li]) # 填入密码
  36. time.sleep(2)
  37. code = driver.find_element(By.XPATH, '//*[@id="imgCode"]').screenshot('code.png') # 截取目标验证码图片到项目根目录
  38. img_path = "D:/Pycharm_Project/pythonProject_selenium/code.png" # 截取的验证码地址(这里填自己的,这个是我的)(不要有中文路径)
  39. result = base64_api(uname='填自己的', pwd='填自己的', img=img_path, typeid=3) # typeid是验证码格式,目标验证码格式根据所需填写(这里是英数组合)
  40. code = driver.find_element(By.XPATH, '//*[@id="code"]')
  41. code.send_keys(result) # 填入验证码
  42. time.sleep(2)
  43. li += 1 # 填写下一个人的
  44. driver.quit() # 关闭浏览器
  45. if __name__ == "__main__":
  46. write()

(1)这里身份信息库和密码库根据自己实际情况填写

(2)用户名(uname)和密码(pwd)填自己在图片识别官网上注册的

(3)这里我在填写完验证码后两秒后直接关闭浏览器了,没有写登录的点击代码,因为只是示范作用,所以不要认为是BUG啊。

(4)用户账户密码库自行处置,我所提供的都是假的

(5)selenium库我用的是4.15.2版本

(6)思路给大家介绍到这里。

五、总结

selenium最常见是的谷歌浏览器的使用,但是也有很多人和我一样对Edge浏览器情有独钟,但是往上有关的selenium相关的介绍要么就是年代久远,要么就是少的可怜,当时最让我头疼的就是使用selenium打开浏览器浏览器会自动关闭,最终花了一下午才解决问题,写下此文,用以重新唤醒未来的我。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/728530
推荐阅读
相关标签
  

闽ICP备14008679号