【技术】基于Chrome的python实现网页自动登入网址

写在前面:

如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持!


目录

一、获取浏览器驱动程序的绝对路径

(一)导入第三方库

(二)取得注册表对象

(三)获取浏览器驱动路径

二、 自动登入网址及后续操作

(一)导入第三方库

(二)登入网址


一、获取浏览器驱动程序的绝对路径

使用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,一个永远在学习中的探索者,关注我,让我们一起进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值