洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块
題外話:
爬蟲學到這里,我想你大部分的網站已經不再話下了對吧?有檢測報文頭的,我們可以偽造報文頭為瀏覽器,有檢測IP,我們可以用代理IP,有檢測請求速度的,我們可以用time模塊停頓一下,需要登錄驗證的,我們可以用cookielib模塊搞定登錄,HTML標簽嵌套太多層的,我們可以用BeautifulSoup輕松取出來,等等方法,反正反爬蟲機制怎么樣,我們基本都有方法解決。
很厲害對吧?別得意忘形了,還有些反爬蟲機制,網頁是JS動態加載的,或者AJAX異步加載的,還有動態驗證碼驗證的等等的,這些機制造成的難度那才是真正的難度。后期也會跟著解析
其實你有沒有發現,在我們寫爬蟲的過程中,在潛移默化的復習前面的基礎知識,很不錯對吧?既能寫爬蟲,還能復習,在其中能掌握好多好多知識,是的。不過在這里,我還是建議大家稍微的了解一下html標簽和css樣式,或者你還可以學習一下js,這樣對后期搞爬蟲很有幫助,需要去了解每個標簽或者代碼是什么含義,什么作用,當寫爬蟲時遇到了,才能立馬做出解決方法對吧?
?
好的,有沒有朋友想過,既然爬蟲這么厲害,可以偽造瀏覽器,那么可以用真實的瀏覽器操作嗎?那是當然可以的,python,就是這么靈活,那么怎么控制真實的瀏覽器呢?終于說道本篇文章的主角了——webbrowser模塊
?
webbrowser模塊
1.簡介
顧名思義,web不用說是什么意思了吧?browser就是瀏覽器的意思嘛,那么webbrower就是web瀏覽器嘛。通俗簡短的說,它可以打開本地計算機的瀏覽器,然后進行更一步的操作,怎么操作就隨你了
webbrowser是一個內置的模塊,python2和python3都有的
2.方法/屬性
python2下:
python3下:
稍稍的有一些不同,不過不影響,那些我們基本很少用
3.常用方法/屬性解析
webbrowser.open(url[, new=0[, autoraise=1]]):用本機默認的瀏覽器操作
- url:網頁鏈接/地址
- new = 0, 那么url會在同一個瀏覽器窗口下打開;如果new = 1, 會打開一個新的窗口,如果new = 2, 會打開一個新的瀏覽器標簽頁;
- autoraise = true,窗口會自動增長
?
例:
首先,我本機默認的瀏覽器是火狐瀏覽器
import webbrowser webbrowser.open('www.baidu.com') #這里可以不用加http://了,這直接是在瀏覽器上操作了,會自動識別結果:
?
使用new參數后,其實沒多大區別,效果一樣的,自己測試了
webbrowser.open_new(url):在默認瀏覽器中打開一個新的窗口來打開url
其效果等價于webbrowser.open(url,new=1),自己測試了
webbrowser.open_new_tab(url):在默認瀏覽器中當開一個新的tab來打開url
其效果等價于webbrowser.open(url,new=2),略過
webbrowser.get([name]):根據name返回一個瀏覽器對象,如果name為空,則獲取到系統默認瀏覽器的操作對象
webbrowser.register(name, construtor[, instance]):注冊一個名字為name的瀏覽器,如果這個瀏覽器類型允許被注冊就可以用get()方法來獲取
允許被注冊的瀏覽器類型有:
| 'mozilla' Mozilla('mozilla')? ? 'firefox' Mozilla('mozilla')? ? 'netscape' Mozilla('netscape')? ? 'galeon' Galeon('galeon')? ? 'epiphany' Galeon('epiphany')? ? 'skipstone' BackgroundBrowser('skipstone')? ? 'kfmclient' Konqueror() (1) 'konqueror' Konqueror() (1) 'kfm' Konqueror() (1) 'mosaic' BackgroundBrowser('mosaic')? ? 'opera' Opera()? ? 'grail' Grail()? ? 'links' GenericBrowser('links')? ? 'elinks' Elinks('elinks')? ? 'lynx' GenericBrowser('lynx')? ? 'w3m' GenericBrowser('w3m')? ? 'windows-default' WindowsDefault (2) 'macosx' MacOSX('default') (3) 'safari' MacOSX('safari') (3) 'google-chrome' Chrome('google-chrome')? ? 'chrome' Chrome('chrome')? ? 'chromium' Chromium('chromium')? ? 'chromium-browser' Chromium('chromium-browser') |
?其中,以上的Chrome,Chromium,MacOSX等等的都是webbrowser里的屬性或者方法
?
例:
import webbrowser print(webbrowser.get()) webbrowser.register('chrome',None,webbrowser.Chrome('chrome')) print(webbrowser.get('chrome'))?
?結果:
?
啟動指定瀏覽器
我們已經知道webbrowser模塊會啟動本機默認瀏覽器,那么我們想啟動指定的瀏覽器呢?
也是可以的:
import webbrowser browser_path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe' #你的瀏覽器主程序路徑 webbrowser.register('chrome',None,webbrowser.BackgroundBrowser(browser_path)) #此處的'chrome'可以用其它任意名字,如test,但是必須給一個,不然又會是默認瀏覽器執行 webbrowser.get('chrome').open('www.baidu.com',new=1,autoraise=True)?結果:
?
關閉瀏覽器
有打開自然有關閉對吧,關閉命令:taskkill /F /IM XX.exe(XX為主程序名)
這次我打開ie瀏覽器:
?
import webbrowser,os,time browser_path = r'C:\Program Files\Internet Explorer\iexplore.exe' #你的瀏覽器主程序路徑,linux,mac等操作環境也一樣 webbrowser.register('chrome',None,webbrowser.BackgroundBrowser(browser_path)) webbrowser.get('chrome').open('www.baidu.com',new=1,autoraise=True) time.sleep(3) os.system('taskkill /F /IM iexplore.exe') #這里的'ieexplore.exe'是進程名稱,必須和瀏覽器主程序名一致,不然無法關閉,taskkill是windows下的命令,linux下沒記錯是kill?
?在三秒過后確實自動關閉,由于效果不好展示,你們在本機體驗吧
?
webbrowser可以打開其他程序嗎?
這里有朋友有個想法了,你說,既然打開的是一個主程序,我可以打開QQ嗎?甚至可以打開其他任何的exe程序嗎?好像可行啊,注意一個命令:webbrowser.open(),這個命令打開的必須是一個合法的url,不然報錯,所以,當然是不可以打開其他程序,能傳入一個url的是不是只有瀏覽器啊?
?
?
實戰,刷博客訪問量
首先,我個人是不喜歡刷訪問量的,刷來有什么用,自己騙自己嘛對吧?這里做個案例講解一下,我建議大家還是不要去刷博客訪問量,沒什么意思,又不能體現自己的價值,也換不了錢對吧?
import webbrowser,time,os count = 1 browser_path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe' #由于我用默認的瀏覽器火狐正在編輯本篇文章呢,所以使用的指定打開瀏覽器方法,你們可以直接默認的,減少代碼 while count <= 9: #最多打開九個窗口,超過就殺死進程webbrowser.register('chrome',None,webbrowser.BackgroundBrowser(browser_path))webbrowser.get('chrome').open_new_tab('http://www.cnblogs.com/yangva/p/7811622.html')count += 1time.sleep(2) else:os.system('taskkill /F /IM chrome.exe')?
結果:這里我設置只有注冊用戶才能查看,所以提示需要登錄的,不影響,結果是實現了的
?
?
轉載于:https://www.cnblogs.com/yangva/p/7811655.html
總結
以上是生活随笔為你收集整理的洗礼灵魂,修炼python(68)--爬虫篇—番外篇之webbrowser模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实用ExtJS教程100例-004:等待
- 下一篇: 数据库MYSQL学习系列一