python實現隨機調用一個瀏覽器開啟網頁

來源:互聯網
上載者:User
下面為大家分享一篇python實現隨機調用一個瀏覽器開啟網頁,具有很好的參考價值,希望對大家有所協助。一起過來看看吧

前兩天總結了一下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-8import webbrowser as web #對匯入的庫進行重新命名import osimport 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 ....'#Google瀏覽器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-8import timeimport webbrowser as webimport osimport 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_nameweb.register(browser_name, None,web.BackgroundBrowser(browser_path))web.get(browser_name).open_new_tab(url)#使用新註冊的瀏覽器開啟網頁print 'using %s browser open url successful' % browser_nametime.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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.