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多进程操作实例
Nov 21 Python
Python实现保证只能运行一个脚本实例
Jun 24 Python
详解python时间模块中的datetime模块
Jan 13 Python
Python中异常重试的解决方案详解
May 05 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
python与caffe改变通道顺序的方法
Aug 04 Python
Python实现打砖块小游戏代码实例
May 18 Python
python实现大学人员管理系统
Oct 25 Python
python字符串的拼接方法总结
Nov 18 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
OpenCV-Python实现人脸磨皮算法
Jun 07 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
2013/12/14 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
详谈JS中实现种子随机数及作用
2016/07/19 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
python实现折半查找和归并排序算法
2017/04/14 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
Django与JS交互的示例代码
2017/08/23 Python
Python中遍历列表的方法总结
2019/06/27 Python
Django后台admin的使用详解
2019/07/08 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
CSMA/CD介质访问控制协议
2015/11/17 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
中专毕业生个人职业生涯规划
2014/02/19 职场文书
国庆促销活动总结
2014/08/29 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
2015年试用期工作总结
2014/12/12 职场文书
纪录片信仰观后感
2015/06/08 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书