【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"
(2)在python中输入,后面的端口号和前面的要保持一致,多个浏览器,就自己匹配好就行:
option.add_experimental_option("debuggerAddress", "127.0.0.1:9200")
通过以上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 datetimedef fuzzy_find(x,_dict):# 对x通过键名模糊查找后返回键名,键值for key,value in _dict.items(): if x in key:return key,valuereturn 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_handlesfor 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] = handlereturn tab_dictdef 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 Falsereturn Trueelse:return Falsedef _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完成。
四、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控制浏览器完成各种操作的教程,网上可以说很多,笔者也是各种学习,但经过测试使用还是对小白不友好。各种填坑在所难免。为了方便操作,避免踩坑,著此文以方便各位。
各种测试,一个周末又报废了,写作不易,有帮助的话,留个言,也提高以下活跃度。
【Python小技巧】Python操控Chrome浏览器实现网页打开、切换、关闭(送独家Chrome操作打包类源码、Chrome浏览器Cookie在哪里?)相关推荐
- Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作(附源码和实现效果)
实现功能: Python数据分析实战-提取DataFrame(Excel)某列(字段)最全操作,代码演示了单列提取和多列提取两种情况,其中单列提取有返回series格式和dataframe两种情况,在 ...
- python常用标准库的基本用法_[每天一个python小技巧]Python中标准库OS的常用方法总结...
前言: 最近使用的数据相关的操作比较多,所以对于os的操作使用频繁,为了避免点开N个浏览器进行查看不同的方法,现将自己常用以及网上所提及的总结归纳如下. 1.获得当前操作系统使用的目录分隔符 os.s ...
- 掌握这10个Python小技巧,让你敲代码速度快5倍不止
问各位一个问题,你有木有经历过这一的场景: 老板让你和同事同事敲代码,同样的时间,别人却比你做的快了很多倍,而且做的还很不错? 其实很多时候也不是你不厉害,更多的是很多基础的效率操作,你没有发现. P ...
- 收藏喜+1!值得使用的100个Python小技巧
目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习.Web开发.脚本编写.自动化等 ...
- 快收藏!整理了 100 个 Python 小技巧
作者:小F 来源: 法纳斯特 目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手. 你可以用它来完成很多任务,比如数据科学.机器学习. ...
- python hist函数_虎哥的python小技巧放送之绘制统计图(2)
先放出第一期让大家回顾一下上次的内容 虎哥的python小技巧放送之绘制统计图(1) 第一期主要给大家讲了一些图形设置的东西.这一次开始正式带大家画图~ 折线图:折线图可以通过matplotlib中的 ...
- 3分钟学会python_3分钟学会一个Python小技巧
Python时间日期转换在开发中是非常高频的一个操作,你经常会遇到需要将字符串转换成 datetime 或者是反过来将 datetime 转换成字符串. datetime 分别提供了两个方法 strp ...
- 一些你可能不知道的 Python 小技巧!
[CSDN 编者按]Python 风头正盛,未来一段时间内想必也会是热门编程语言之一.因此,熟练掌握 Python 对开发者来说极其重要,说不定能给作为开发者的你带来意想不到的财富. 作者 | Seb ...
- python小技巧:一步步教你用Python实现
python小技巧:一步步教你用Python实现2048小游戏 https://www.meipian.cn/2xywlpbv https://www.meipian.cn/2xywhexo http ...
最新文章
- C++ stack容器
- CentOS进不了系统
- mysql 链接慢_mysql连接非常慢的觖决办法及其它常见问题解决办法
- Raspberry PI 系列 —— 裸机点亮LED灯
- Linux 内存管理 | 地址映射:分段、分页、段页
- python安装环境傻瓜式安装_Python环境安装(两种方式)
- Leetcode--113. 路径总和Ⅱ
- 金蝶报表制作_BI报表不光好看,更好用,为什么很多人却还不知道?
- mysql-The-server-quit-without-updating-PID-file
- ES6_Promise
- 1064. 朋友数(20)-PAT乙级真题
- jQuery中click事件多次触发解决方案
- mysql基础知识(一)
- C++ shared_ptr make_shared是什么意思
- Android应用开发
- win10 如何做到 C盘 的绝对干净,所有软件都安装到D盘,C盘只用来存操作系统。
- Leetcode_603. 连续空余座位
- 软件测试实习生(月薪3k-5k)需要具备哪些技能才能找到工作?
- uniapp使用canvas完成手写电子签名
- 关于DBA或SA这个职业的讨论