許多人都用過selenium,卻沒有用過wire,如果你接觸到了它,你在類似像代理這樣的功能上,以及其他功能上都會得到幫助。
具體該怎么使用它,我覺得你去它的github上查看issue或文檔會更好。在這里小編也只是簡單描述一下它。
為什么會有selenium-wire?
小編其實對這個庫了解的仍然不夠充分,不過它是基于selenium和browsermobproxy的基礎上進行二開的,目前selenium的版本已經更新到3.x,在以前老版本1.x和2.x,browsermobproxy是selenium的重要支撐一環,后來升級版本的時候將它們兩個拆開了,而proxy模塊被單獨立了一個項目,取名為browsermobproxy。
使用過selenium的朋友們都知道,它在3.x版本只能支持免驗證的代理,如果通過擴展組件,我們將有機會解決代理驗證的問題,不過目前來看,chrome_driver在add_extends莫名其妙的會卡死,阻塞。所以小編只好放棄這一種辦法,另一種可行的方法是自己搭建本地代理(比如browsermobproxy),然后讓瀏覽器連接這個本地代理,本地代理再連接遠程代理,解決驗證問題。
其實這個proxy非常強大,它不亞于nginx、haproxy這類反向代理,我們可以運用它來修改request headers,甚至之前也有朋友說通過mitmproxy去解決一些開啟headless的反爬問題,不過小編認為,如果借助browsermobproxy,依然可以做到像mitmproxy一樣篡改響應數據。
小編認為下面這一篇文章也能很好的幫助到你: