背景:
- web端的sig 已经破解,但web的cookie只有一天的有效期。
- 还原cookie生成有点麻烦,故使用selenium模拟登录。
查看chrome version
前置条件:更新chrome到最新版本。
查看chrome version
chrome://version/
# 显示的chrome信息
Google Chrome 90.0.4430.212 (正式版本) (x86_64)
修订版本 e3cd97fc771b893b7fd1879196d1215b622c2bed-refs/branch-heads/4430@{#1429}
操作系统 macOS 版本11.3.1(版号20E241)
JavaScript V8 9.0.257.29
用户代理 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
命令行 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --origin-trial-disabled-features=SecurePaymentConfirmation --flag-switches-begin --flag-switches-end
查看chromedriverb版本
chromedriver version list
下载chromedriverb版本
http://chromedriver.storage.googleapis.com/index.html?path=90.0.4430.24/
webdriver 无界面设置
options = webdriver.ChromeOptions()
# 添加无界面参数
options.add_argument('--headless')
模拟登录过程
- 初始化webdriver
- 请求网页
- 定位元素;可通过id、class或者xpath等。比如driver.find_element_by_xpath。
- 输入账号和密码
- 如果有验证码的,破解验证码等。
模拟登录遇到的问题
判定平台类型
def get_platform():
platform_ = platform.system()
is_win = is_linux = is_mac = False
if platform_ == "Windows":
is_win = True
if platform_ == "Linux":
is_linux = True
if platform_ == "Darwin":
is_mac = True
return [is_win, is_linux, is_mac]
DeprecationWarning: use options instead of chrome_options
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(options=chrome_options)
网友评论