python实现随机调用一个浏览器打开网页


Posted in Python onApril 21, 2018

前两天总结了一下python爬虫 使用真实浏览器打开网页的两种方法总结

但那仅仅是总结一下而已,今天本文来实战演练一下

依然使用的是 webbrowser 这个模块 来调用浏览器

关于的三种打开方式在上一篇文章中已经说过了,这里不再赘述

如果没有特意注册,那么将会是使用默认的浏览器来打开网页,如下:

#默认浏览器 
#coding:utf-8 
import webbrowser as web #对导入的库进行重命名 
def run_to_use_default_browser_open_url(url): 
 web.open_new_tab(url) 
 print 'run_to_use_default_browser_open_url open url ending ....'

真正的注册一个非默认浏览器:

这里先用的firfox浏览器

#firefox浏览器 
def use_firefox_open_url(url): 
 browser_path=r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe' 
 #这里的‘firefox'只是一个浏览器的代号,可以命名为自己认识的名字,只要浏览器路径正确 
 web.register('firefox', web.Mozilla('mozilla'), web.BackgroundBrowser(browser_path)) 
 #web.get('firefox').open(url,new=1,autoraise=True) 
 web.get('firefox').open_new_tab(url) 
 print 'use_firefox_open_url open url ending ....'

解释一下这个注册函数当前的用法

web.register() 它的三个参数

第一个为 自己给浏览器重新命的名字, 主要目的是为了在之后的调用中,使用者能够找到它

第二个参数, 可以按照这样上面的例子这样写,因为python本身将一些浏览器实例化了, 但是还是推荐 将其赋值为 None ,因为这个参数没有更好,毕竟有些浏览器python本身并没有实例化,而这个参数也不影响它的使用

第三个参数,目前所知是浏览器的路径, 不知道有没有别的写法

当然,这里只是在这里的用法, 函数本身的意思可以去源文件中查看

下面给我一些测试的实例:

#coding:utf-8
import webbrowser as web #对导入的库进行重命名
import os
import time
#默认浏览器
def run_to_use_default_browser_open_url(url):
	web.open_new_tab(url)
	print 'run_to_use_default_browser_open_url open url ending ....'
	
#firefox浏览器	
def use_firefox_open_url(url):
	browser_path=r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'
	#这里的‘firefox'只是一个浏览器的代号,可以命名为自己认识的名字,只要浏览器路径正确
	web.register('firefox', web.Mozilla('mozilla'), web.BackgroundBrowser(browser_path))
	#web.get('firefox').open(url,new=1,autoraise=True)
	web.get('firefox').open_new_tab(url)
	print 'use_firefox_open_url open url ending ....'
#谷歌浏览器
def use_chrome_open_url(url):
	browser_path=r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
	web.register('chrome', None,web.BackgroundBrowser(browser_path))
	web.get('chrome').open_new_tab(url)
	print 'use_chrome_open_url open url ending ....'
#Opera浏览器	
def use_opera_open_url(url):
	browser_path=r'C:\Program Files (x86)\Opera\launcher.exe'
	web.register('opera', None,web.BackgroundBrowser(browser_path))
	web.get('chrome').open_new_tab(url)
	print 'use_opera_open_url open url ending ....'
#千影浏览器
def use_qianying_open_url(url):
	browser_path=r'C:\Users\Administrator\AppData\Roaming\qianying\qianying.exe'
	web.register('qianying', None,web.BackgroundBrowser(browser_path))
	web.get('qianying').open_new_tab(url)
	print 'use_qianying_open_url open url ending ....'
#115浏览器	
def use_115_open_url(url):
	browser_path=r'C:\Users\Administrator\AppData\Local\115Chrome\Application\115chrome.exe'
	web.register('115', None,web.BackgroundBrowser(browser_path))
	web.get('115').open_new_tab(url)
	print 'use_115_open_url open url ending ....'
	
#IE浏览器	
def use_IE_open_url(url):
	browser_path=r'C:\Program Files (x86)\Internet Explorer\iexplore.exe'
	web.register('IE', None,web.BackgroundBrowser(browser_path))
	web.get('IE').open_new_tab(url)
	print 'use_IE_open_url open url ending ....'
	
#搜狗浏览器
def use_sougou_open_url(url):
	browser_path=r'D:\Program Files(x86)\SouExplorer\SogouExplorer\SogouExplorer.exe'
	web.register('sougou', None,web.BackgroundBrowser(browser_path))
	web.get('sougou').open_new_tab(url)
	print 'use_sougou_open_url open url ending ....'
	
#浏览器关闭任务	
def close_broswer():
	os.system('taskkill /f /IM SogouExplorer.exe') 
	print 'kill SogouExplorer.exe'
	os.system('taskkill /f /IM firefox.exe') 
	print 'kill firefox.exe'
	os.system('taskkill /f /IM Chrome.exe') 
	print 'kill Chrome.exe'
	os.system('taskkill /f /IM launcher.exe') 
	print 'kill launcher.exe'
	os.system('taskkill /f /IM qianying.exe') 
	print 'kill qianying.exe'
	os.system('taskkill /f /IM 115chrome.exe') 
	print 'kill 115chrome.exe'
	os.system('taskkill /f /IM iexplore.exe') 
	print 'kill iexplore.exe'
	
#测试运行主程序
def broswer_test():	
	url='https://www.baidu.com'	
	run_to_use_default_browser_open_url(url)
	use_firefox_open_url(url)
	#use_chrome_open_url(url)
	use_qianying_open_url(url)
	use_115_open_url(url)
	use_IE_open_url(url)
	use_sougou_open_url(url)
	time.sleep(20)#给浏览器打开网页一些反应时间
	close_broswer()
if __name__ == '__main__': 
	print ''''' 
   ***************************************** 
   ** Welcome to python of browser  ** 
   **  Created on 2017-05-07   ** 
   **  @author: Jimy _Fengqi   ** 
   ***************************************** 
	''' 
	broswer_test()

好了,上面的程序是测试实例, 下面对这些内容做一个整合,简化一下代码,来实现本文的根本目的

#coding:utf-8
import time
import webbrowser as web
import os
import random
#随机选择一个浏览器打开网页
def open_url_use_random_browser():
	#定义要访问的地址
	url='https://www.baidu.com'
	#定义浏览器路径
	browser_paths=[r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe',
							r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe',
							r'C:\Program Files (x86)\Opera\launcher.exe',
							r'C:\Users\Administrator\AppData\Roaming\qianying\qianying.exe',
							r'C:\Users\Administrator\AppData\Local\115Chrome\Application\115chrome.exe',
							r'C:\Program Files (x86)\Internet Explorer\iexplore.exe',
							r'D:\Program Files(x86)\SouExplorer\SogouExplorer\SogouExplorer.exe'
							]
	#选择一个浏览器
	def chose_a_browser_open_url(browser_path,url):
		#如果传入的浏览器位置不存在,使用默认的浏览器打开
		if not browser_path:
			print 'using default browser to open url'
			web.open_new_tab(url)#使用默认浏览器,就不再结束进程
		else:
			#判断浏览器路径是否存在
			if not os.path.exists(browser_path):
				print 'current browser path not exists,using default browser'
				#浏览器位置不存在就使用默认的浏览器打开
				browser_path=''
				chose_a_browser_open_url(chose_a_browser_open_url,url)
			else:
				browser_task_name=browser_path.split('\\')[-1]#结束任务的名字
				browser_name=browser_task_name.split('.')[0]#自定义的浏览器代号
				print browser_name
				web.register(browser_name, None,web.BackgroundBrowser(browser_path))
				web.get(browser_name).open_new_tab(url)#使用新注册的浏览器打开网页
				print 'using %s browser open url successful' % browser_name
				time.sleep(5)#等待打开浏览器
				kill_cmd='taskkill /f /IM '+browser_task_name#拼接结束浏览器进程的命令
				os.system(kill_cmd) #终结浏览器
	browser_path=random.choice(browser_paths)#随机从浏览器中选择一个路径
	chose_a_browser_open_url(browser_path,url)
if __name__ == '__main__': 
	print ''''' 
   ***************************************** 
   ** Welcome to python of browser  ** 
   **  Created on 2017-05-07   ** 
   **  @author: Jimy _Fengqi   ** 
   ***************************************** 
	'''
	open_url_use_random_browser()

PS:本程序在windows上面运行,python版本是2.7

以上这篇python实现随机调用一个浏览器打开网页就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
盘点提高 Python 代码效率的方法
Jul 03 Python
解析Python中的生成器及其与迭代器的差异
Jun 20 Python
python Celery定时任务的示例
Mar 13 Python
python操作redis方法总结
Jun 06 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
简单了解Django应用app及分布式路由
Jul 24 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
mac使用python识别图形验证码功能
Jan 10 Python
Python更换pip源方法过程解析
May 19 Python
python 写一个文件分发小程序
Dec 05 Python
Django显示可视化图表的实践
May 10 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 #Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 #Python
Django项目实战之用户头像上传与访问的示例
Apr 21 #Python
基于Python 装饰器装饰类中的方法实例
Apr 21 #Python
使用python装饰器计算函数运行时间的实例
Apr 21 #Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 #Python
Python 实现一行输入多个值的方法
Apr 21 #Python
You might like
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
html超链接打开窗口大小的方法
2013/03/05 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
详解python eval函数的妙用
2017/11/16 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Django多数据库的实现过程详解
2019/08/01 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
工作自我评价怎么写
2014/01/29 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书