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实现Linux下守护进程的编写方法
Aug 22 Python
Python Requests安装与简单运用
Apr 07 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python封装原理与实现方法详解
Aug 28 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
Python生态圈图像格式转换问题(推荐)
Dec 02 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
Python threading.local代码实例及原理解析
Mar 16 Python
python实现人工蜂群算法
Sep 18 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 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使用GeoIP库实例
2014/06/27 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
PHP中关键字interface和implements详解
2017/06/14 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
关于IE BUG与字符串截取substr的解决办法
2013/04/10 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
JS判断数组里是否有重复元素的方法小结
2019/05/21 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
Python下线程之间的共享和释放示例
2015/05/04 Python
python编写分类决策树的代码
2017/12/21 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
专项法律服务方案
2014/06/11 职场文书
应急管理培训方案
2014/06/12 职场文书
2014年卫生工作总结
2014/11/27 职场文书
婚庆答谢词
2015/01/04 职场文书
合作合同协议书范本
2015/01/27 职场文书
2015年领班工作总结
2015/04/29 职场文书
民事诉讼代理词
2015/05/25 职场文书