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字符编码判断方法分析
Jul 01 Python
pandas使用get_dummies进行one-hot编码的方法
Jul 10 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
PyQt5实现简单数据标注工具
Mar 18 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python 变量的创建过程详解
Sep 02 Python
如何基于Python批量下载音乐
Nov 11 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
利用python绘制数据曲线图的实现
Apr 09 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 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简单统计字符串单词数量的方法
2015/06/19 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
js如何获取兄弟、父类等节点
2014/01/06 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
VueJS全面解析
2016/11/10 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
python画图常规设置方式
2020/03/05 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
中专生毕业自我鉴定
2013/11/01 职场文书
会计人员岗位职责
2014/03/19 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
捐款活动总结
2014/08/27 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
工商行政处罚决定书
2015/06/24 职场文书
谢师宴学生致辞
2015/07/27 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS