写在前面:
如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!
目录
一、获取浏览器驱动程序的绝对路径
使用python自动登入某网站,除了需要知道网站网址就是Chrome浏览器驱动程序的绝对路径。如果是你在操作,获取Chrome的驱动程序所在的绝对路径很容易,无论是右键点击桌面的快捷方式找到驱动程序路径,还是在Windows菜单里搜索然后打开“所在文件夹”,找到exe驱动程序都非常简单,这里不再赘述。
关键在于,实现完全的自动化就必须自动寻找到Chrome的驱动程序,这就需要用到一些第三方库。
(一)导入第三方库
相关的第三方库需要下载的主要是pypiwin32或者是pywin32,很多博主直接导入这个库的win32api或者win32con,这些都不是这个库的名称。
pip install pypiwin32 -i https://pypi.tuna.tsinghua.edu.cn/simple
自己在pycharm里面下第三方库太煎熬了,我这里的终端下载指令换了个源。
import win32api
import win32con
如果导入这俩都成功了,说明pypiwin32的库已经下载成功了。
另外这俩模块都是操作Windows注册表的,要知道所有应用程序在安装到Windows时要将应用信息写到注册表中,而寻找应用注册表中的信息即可获得应用程序的绝对路径。
(二)取得注册表对象
key = win32con.HKEY_CURRENT_USER
subkey = 'Software\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe'
reserved = 0
sam = win32con.KEY_READ
result = win32api.RegOpenKeyEx(key, subkey, reserved, sam)
这里RegOpennKeyEx()是win32api下为了打开注册表的方法,有四个参数:key是你打开“注册表编辑器”里主要的那6个主键,这里选择了其中一个;subkey则是子键,就是注册表具体位置;reserved就是控制选取信息的,默认0;sam则是对打开的注册表子项要进行的操作,这里选择的是读取。
使用一下print()返回一下result接收到的结果,返回结果如下。
<PyHKEY:292>
这就是一个具体的注册表对象。
(三)获取浏览器驱动路径
将上面那个注册表对象传递到win32api下属的一个叫做RegQueryValueEX()的方法,这个方法是用来再许多注册表结果里面挑数据的,第一个参数就是注册表对象,第二个参数则是选择用什么数据类型来输出对象,最后[0]是保证准确的。
path = win32api.RegQueryValueEx(result, '')[0]
再用print()看一下结果如下。
C:\Users\86130\AppData\Local\Google\Chrome\Application\chrome.exe
这也就得到了Chrome浏览器的绝对路径。
二、 自动登入网址及后续操作
(一)导入第三方库
import webbrowser as web
我一开始是打算使用selenium库来打开chrome的,但发现问题太多;与此同时os也可以打开浏览器,但相当于自己手动输入cmd指令,也不符合——最终使用了webbrowser来使用,事实证明,确实很方便。
(二)登入网址
url = 'https://www.baidu.com'
web.register('chrome', None, web.BackgroundBrowser(path))
browser = web.get('chrome')
browser.open(url)
首先建立一个网址变量,同时用webbrowser的register方法把我们之前获得的驱动路径输入进去,这里BackgroundBrowser是为了找到那个驱动程序,再用get方法打开浏览器,再用open打开相关网页即可登入网址。
我是EC,一个永远在学习中的探索者,关注我,让我们一起进步!