selenium(五)偽造瀏覽器


簡介:

這個就比較好玩了,大家還記得以前的QQ小尾巴么?還有百度貼吧的小尾巴,就是那個來自***的iphone7,這個功能。

這個功能是基於瀏覽器的user-agent功能實現的。

還是httpbin.org

http://httpbin.org/user-agent

User Agent中文名為用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。

服務器能夠識別你的操作系統,瀏覽器,就可以針對性的給你返回適合你的設備。通俗講,就是手機可以瀏覽手機版的頁面,電腦可以瀏覽電腦版的頁面。以前還有什么手機版,觸屏版……

瀏覽器現在都有插件來實現更換UA了。selenium,我們也要更換啊。尤其是那個請在微信中打開……,那是在微信中內置了一個瀏覽器,有它自己的UA,服務器知道你用的是微信內置瀏覽器,就給你訪問,如果不是,就提示你請在微信中打開。

我去找一個微信UA

Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A403 MicroMessenger/6.3.27 NetType/WIFI Language/zh_CN

據說這樣的UA,就可以打開了,你可以用瀏覽器插件更換后試一試。我就不給你看我的UA了。有人說只要UA中包含(MicroMessenger)就可以。我也不測試了。

目標:使用selenium,來替換UA。

一:selenium 查看現在的UA。

from time import sleep
from selenium import webdriver
driver=webdriver.Firefox()
driver.get('http://httpbin.org/user-agent')

 

 

 二:firefox替換UA

from selenium import webdriver
ua='Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) \
AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A403 \
MicroMessenger/6.3.27 NetType/WIFI Language/zh_CN'
profiel = webdriver.FirefoxProfile()
profiel.set_preference('general.useragent.override',ua)
driver=webdriver.Firefox(firefox_profile=profiel)
driver.get('http://httpbin.org/user-agent')

好了,這就替換了

三:chrome替換UA

from selenium import webdriver
ua='Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_1 like Mac OS X) \
AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A403 \
MicroMessenger/6.3.27 NetType/WIFI Language/zh_CN'
options=webdriver.ChromeOptions()
options.add_argument('user-agent=' + ua)
driver=webdriver.Chrome(options=options)
driver.get('http://httpbin.org/user-agent')

好了,這就替換了

四:深入思考

firefox可以通過webdriver -> FirefoxProfile -> set_preference (名稱 ,值) 來替換設置瀏覽器的參數

chrome 可以通過 webdriver -> ChromeOptions -> add_argument (名稱=值)來替換設置瀏覽器的參數

那么都有哪些參數可以設置呢?

firefox下:可以打開 about:config 來查看可以設置的選項

Chrome :可以設置的啟動參數列表  https://peter.sh/experiments/chromium-command-line-switches/

我現在就用這么多,更多的配置參數,自己查吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM