Selenium使用Chrome模拟手机浏览器方法解析


Posted in Python onApril 10, 2020

在使用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')

操作效果如下图:

Selenium使用Chrome模拟手机浏览器方法解析

Chrome开发者工具中已经设置好的设备类型非常多,可以在开发者工具->Settings->Devices中查看,如下图:

Selenium使用Chrome模拟手机浏览器方法解析

使用自定义设备

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值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python FTP操作类代码分享
May 13 Python
Unicode和Python的中文处理
Mar 19 Python
python 重定向获取真实url的方法
May 11 Python
pytorch 实现打印模型的参数值
Dec 30 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
pandas进行数据输入和输出的方法详解
Mar 23 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 Python
如何利用python创作字符画
Jun 25 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 #Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 #Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 #Python
jupyter notebook 多环境conda kernel配置方式
Apr 10 #Python
OpenCV 表盘指针自动读数的示例代码
Apr 10 #Python
Python装饰器的应用场景代码总结
Apr 10 #Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 #Python
You might like
深入PHP内存相关的功能特性详解
2013/06/08 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
php curl 模拟登录并获取数据实例详解
2016/12/22 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
JS 控件事件小结
2012/10/31 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
微信小程序checkbox组件使用详解
2018/01/31 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
JS猜数字游戏实例讲解
2020/06/30 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
Python实现mysql数据库更新表数据接口的功能
2017/11/19 Python
python批量下载抖音视频
2019/06/17 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
python 如何调用远程接口
2020/09/11 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
教师年终个人自我评价
2013/10/04 职场文书
酒店人事专员岗位职责
2013/12/19 职场文书
迟到检讨书1000字
2014/01/15 职场文书
书香家庭事迹材料
2014/05/09 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
安全守法证明
2015/06/23 职场文书
董事长年会致辞
2015/07/29 职场文书
会议室使用管理制度
2015/08/06 职场文书
学习党章心得体会2016
2016/01/15 职场文书