最近学校图书馆的到座率很高,预约的时候很有可能就预约不到自己想要的座位了。
作为一个 “懒人”,能用自动化代替的东西,为什么还要亲自动手呢?
唠叨两句:首先,selenium 真是个好东西!(还不是因为懒得研究金智系统那套低端的前端加密算法🙃)
如果你有兴趣,不妨可以试试:这边 汇总了全国所有使用这套系统的身份认证地址。
也就是说,使用 selenium 进行操作,实际上只是半自动化操作(直接模拟人类的行为),而不是全自动操作。可能对于新手来说,使用 selenium 还可以规避很多将人类操作逻辑转化成代码逻辑的困难,不过,使用 selenium 再一定程度上也可以更 “像” 真人的操作,在有些时候,相比于纯使用代码执行请求,也许有意想不到的优势。
此文仅记录 Linux 下 selenium 的部署过程,其他内容不赘述。
1、安装 chrome 用下面的命令安装 Google Chrome
1 yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
也可以先下载至本地,然后安装
1 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
1 yum install ./google-chrome-stable_current_x86_64.rpm
安装必要的库 1 yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts
2、安装 chromedriver(chromedriver 的版本号与 Chrome 基本一致即可) 查看 chrome 版本号
下载 chromedriver 安装包 chrome 官网 1 wget http://npm.taobao.org/mirrors/chromedriver/84.0.4147.30/chromedriver_linux64.zip
淘宝源(推荐) 1 wget http://http://npm.taobao.org/mirrors/chromedriver/84.0.4147.30/chromedriver_linux64.zip
将下载的文件解压 1 unzip chromedriver_linux64.zip
CentOS 默认没有附带解压工具,可以使用以下命令进行安装
1 yum install -y unzip zip
移动解压后的文件到如下位置 1 mv chromedriver /usr/bin/
给予执行权限 1 chmod +x /usr/bin/chromedriver
3、测试是否成功 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_options = Options() chrome_options.add_argument('--headless' ) chrome_options.add_argument('--disable-gpu' ) chrome_options.add_argument('--no-sandbox' ) driver = webdriver.Chrome(chrome_options=chrome_options) for i in range (6 ): driver.get("https://pwner.cn" ) print(driver.title) driver.close()
当然,目前很多主流网站也会检测使用 webdriver 的特征,最直观的就是使用 window.navigator.webdriver
进行判断。在未使用 webdriver
的时候,控制台中查看该属性会显示 undefine
,反之则会显示 true
。