【Python小技巧】Python操控Chrome浏览器实现网页打开、切换、关闭(送独家Chrome操作打包类源码、Chrome浏览器Cookie在哪里?)
后台-插件-广告管理-内容页头部广告(手机) |
文章目录
- 前言
- 一、什么时候需要用Python控制浏览器?
- 二、下载Chrome浏览器驱动文件
- 1. 安装Chrome浏览器并查看版本
- 2. 下载浏览器驱动文件
- 3. 解压到python编译器目录(python.exe所在目录)
- 三、Python控制Chrome浏览器(附源代码)
- 1. 操作分两步
- 2. Python控制Chrome浏览器完整源代码
- 四、Chrome浏览器Cookie在哪里?(避坑指南)
- 总结
前言
本文将为您展示如何通过Python控制浏览器实现网页的打开、页面的切换和关闭的基本操作,另外对于高阶用户,知道Chrome浏览器Cookie在哪里?可以方便方位Cookie从而实现带登录的更多操作。当然,利用本文方法,你也可以提前登录好,这样就可以直接操作,而免去繁琐的登录环节。按步骤操作,小白也可以实现功能哦!
一、什么时候需要用Python控制浏览器?
有些时候,我们需要操作浏览器完成访问,比如通过网页操作同花顺模拟炒股,又比如做一些网页端的测试等。总之,每次都要点击很多次鼠标,太麻烦了。那么有没有一种可以方法可以通过程序控制操作呢。当然,有些人已经想到了模拟键盘鼠标的键盘精灵类软件。这些当然可以。但我们今天要讲一种更为直接的办法。
二、下载Chrome浏览器驱动文件
1. 安装Chrome浏览器并查看版本
检查自己的Chrome浏览器版本,后面下载驱动要看这个,否则不匹配也用不了。
2. 下载浏览器驱动文件
然后到下面的网页里去找对应的版本(主要的版本号对应上即可)
https://registry.npmmirror.com/binary.html?path=chromedriver/
根据操作系统选择需要下载的文件,Windows系统下载这个文件即可。
3. 解压到python编译器目录(python.exe所在目录)
将解压出来的chromedriver.exe放到python编译器目录。如果使用Python虚拟环境,一样放到虚拟环境目录下。
三、Python控制Chrome浏览器(附源代码)
1. 操作分两步
(1)在CMD命令提示符中输入(具体路径看你的浏览器安装位置):
cd C:\Program Files\Google\Chrome\Application\ chrome.exe --remote-debugging-port=9200 --user-data-dir="D:\tempfiles"- 1
- 2
(2)在python中输入,后面的端口号和前面的要保持一致,多个浏览器,就自己匹配好就行:
option.add_experimental_option("debuggerAddress", "127.0.0.1:9200")- 1
通过以上2个步骤的配合,即可实现使用selenium对当前打开的chrome界面进行接管。
2. Python控制Chrome浏览器完整源代码
这里使用selenium 来控制浏览器,为方便操作,将其打包成类。并且使用模糊搜索,可通过窗口titile操作页面。个人独创,这里加鸡腿啊!
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import time,os import datetime def fuzzy_find(x,_dict): # 对x通过键名模糊查找后返回键名,键值 for key,value in _dict.items(): if x in key: return key,value return x,None # 定义一个字典,设置网页标题和url,后面操作会使用到 url_dict = { '通达信问小达':'https://wenda.tdx.com.cn/site/wenda/index.html', '雪球':'https://xueqiu.com/', '百度':'http://www.baidu.com', } class Chrome_browser(): def __init__(self): print('start Chrome_browser') options = Options() options.add_experimental_option("debuggerAddress", "127.0.0.1:9200") self.browser = webdriver.Chrome(options=options) self.browser.implicitly_wait(8) # 设置隐式时间等待 self._max() def _max(self): self.browser.maximize_window() # 最大化浏览器 def _get_tab_dict(self): tab_dict = {} handles = self.browser.window_handles for handle in handles: # 切换窗口 # print ('switch to second window', handle) # self.browser.close() # 关闭第一个窗口 self.browser.switch_to.window(handle) # 切换到第二个窗口 # print(self.browser.title) title = self.browser.title.replace(u'\xa0', '').split('-')[0] # 剔除标题中的'-'字符 tab_dict[title] = handle return tab_dict def open_tab(self,url_dict=url_dict): for k,v in url_dict.items(): print('进入'+k,datetime.datetime.now()) self.browser.switch_to.new_window('tab') self.browser.get(v) self.browser.refresh() time.sleep(2) def _switch(self, name='', act=''): # 包含同时关闭的功能 tab_dict = self._get_tab_dict() print('tab_dict',tab_dict) if name != '': key,value = fuzzy_find(name,tab_dict) # print('key,value',key,value) if value != None: self.browser.switch_to.window(value) if act == 'close': self.browser.close() return False return True else: return False def _close(self): # 关闭所有窗口,关闭单个由switch完成。 tab_dict = self._get_tab_dict() for k,v in tab_dict.items(): # 切换窗口 self.browser.switch_to.window(v) self.browser.close() if __name__=='__main__': cb = Chrome_browser() cb.open_tab() cb._switch(name='通达信',act='') # 切换到title为name的窗口,act='close'则切换完同时关闭。 cb._close() # 关闭所有窗口,关闭单个由switch完成。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
四、Chrome浏览器Cookie在哪里?(避坑指南)
以上操作,可以提前登录好,并保存密码,即可实现自动登录。
但如果需要读取Cookie完成更多高级操作,请注意以下路径。网上之前的文章很多,但好些拿来不能用,关键是Cookie文件路径变了:
96版本以前:./AppData\Local\Google\Chrome\User Data\default\Cookies
96版本之后:./AppData/Local/Google/Chrome/User Data/Default/Network/Cookies
完整路径如(Administrator替换为自己的用户名):
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies
另外,注意Chrome会自动更新,请及时更新对应驱动文件。
总结
关于Python控制浏览器完成各种操作的教程,网上可以说很多,笔者也是各种学习,但经过测试使用还是对小白不友好。各种填坑在所难免。为了方便操作,避免踩坑,著此文以方便各位。
各种测试,一个周末又报废了,写作不易,有帮助的话,留个言,也提高以下活跃度。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |