Selenium使用Chrome模擬手機(jī)瀏覽器方法解析
在使用Chrome瀏覽網(wǎng)頁時(shí),我們可以使用Chrome開發(fā)者工具模擬手機(jī)瀏覽器,在使用Selenium操作Chrome時(shí)同樣也可以模擬手機(jī)瀏覽器。主要有以下兩種用途。
測(cè)試H5頁面在不同分辨率設(shè)備上的顯示情況是否正常爬取數(shù)據(jù)(一般網(wǎng)站對(duì)移動(dòng)設(shè)備瀏覽的反爬教弱)使用指定設(shè)備
操作方法非常簡(jiǎn)單,在ChromeOptions()瀏覽器選項(xiàng),添加實(shí)驗(yàn)選項(xiàng),mobileEmulation選項(xiàng)中通過devicename指定選擇的設(shè)備即可,操作代碼如下。
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'}) # 模擬iPhone X瀏覽
driver = webdriver.Chrome(options=options)
driver.get('http://m.baidu.com')
操作效果如下圖:

Chrome開發(fā)者工具中已經(jīng)設(shè)置好的設(shè)備類型非常多,可以在開發(fā)者工具->Settings->Devices中查看,如下圖:

使用自定義設(shè)備
mobileEmulation除了可以通過deviceName指定設(shè)備之外,還可以通過deviceMetrics指定設(shè)備指標(biāo),一般設(shè)備指標(biāo)包含
- width: 設(shè)備寬度
- height: 設(shè)備高度
- piexelRatio: 設(shè)備像素密度
- userAgent:設(shè)備瀏覽器標(biāo)識(shí)
使用示例如下:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('mobileEmulation',
{'deviceMetrics':{'width': 320,
'height': 640,
'piexelRatio': 3.0,
'userAgent': 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3'
}
}
)
driver = webdriver.Chrome(options=options)
driver.get('http://m.baidu.com')
當(dāng)然如果只需要測(cè)試不同分辨率的話也可以只設(shè)置width和height值。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python3+Selenium+Chrome實(shí)現(xiàn)自動(dòng)填寫WPS表單
- 下載與當(dāng)前Chrome對(duì)應(yīng)的chromedriver.exe(用于python+selenium)
- selenium+Chrome滑動(dòng)驗(yàn)證碼破解二(某某網(wǎng)站)
- python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例
- 詳解pyinstaller selenium python3 chrome打包問題
- selenium+java+chrome環(huán)境搭建的方法步驟
- selenium 安裝與chromedriver安裝的方法步驟
- selenium設(shè)置proxy、headers的方法(phantomjs、Chrome、Firefox)
相關(guān)文章
如何解決requests,已經(jīng)安裝卻無法import問題
這篇文章主要介紹了如何解決requests,已經(jīng)安裝卻無法import問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
python通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地
這篇文章主要為大家詳細(xì)介紹了python通過paramiko復(fù)制遠(yuǎn)程文件及文件目錄到本地,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
解決torch.autograd.backward中的參數(shù)問題
今天小編就為大家分享一篇解決torch.autograd.backward中的參數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
Python-OpenCV深度學(xué)習(xí)入門示例詳解
深度學(xué)習(xí)已經(jīng)成為機(jī)器學(xué)習(xí)中最受歡迎和發(fā)展最快的領(lǐng)域。深度學(xué)習(xí)的常見應(yīng)用包括語音識(shí)別、圖像識(shí)別、自然語言處理、推薦系統(tǒng)等等。本文將通過一些示例代碼,帶你詳細(xì)了解深入學(xué)習(xí)2021-12-12
python多維列表總是只轉(zhuǎn)為一維數(shù)組問題解決
這篇文章主要為大家介紹了python多維列表總是只轉(zhuǎn)為一維數(shù)組問題解決實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Python遠(yuǎn)程創(chuàng)建docker容器的方法
這篇文章主要介紹了Python遠(yuǎn)程創(chuàng)建docker容器的方法,如果docker??ps找不到該容器,可以使用?docker?ps?-a查看所有的,然后看剛才創(chuàng)建的容器的STATUS是EXIT0還是EXIT1如果是1,那應(yīng)該是有報(bào)錯(cuò),使用?docker?logs?容器id命令來查看日志,根據(jù)日志進(jìn)行解決,需要的朋友可以參考下2024-04-04

