在使用Chrome瀏覽網頁時,我們可以使用Chrome開發者工具模擬手機瀏覽器,在使用Selenium操作Chrome時同樣也可以模擬手機瀏覽器。主要有以下兩種用途。
- 測試H5頁面在不同分辨率設備上的顯示情況是否正常
- 爬取數據(一般網站對移動設備瀏覽的反爬教弱)
使用指定設備
操作方法非常簡單,在ChromeOptions()瀏覽器選項,添加實驗選項,mobileEmulation選項中通過devicename指定選擇的設備即可,操作代碼如下。
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開發者工具中已經設置好的設備類型非常多,可以在開發者工具->Settings->Devices中查看,如下圖:
使用自定義設備
mobileEmulation除了可以通過deviceName指定設備之外,還可以通過deviceMetrics指定設備指標,一般設備指標包含
- width: 設備寬度
- height: 設備高度
- piexelRatio: 設備像素密度
- userAgent:設備瀏覽器標識
使用示例如下:
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')
當然如果只需要測試不同分辨率的話也可以只設置width和height值。