Selenium使用Chrome模拟手机浏览器方法解析
在使用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值。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解pyinstaller selenium python3 chrome打包问题
今天打包selenium一个简单的请求,打完包本机运行exe没有问题,换台机器就闪退,非常蛋疼找了半天原因. 下面简述下,防止踩坑,如果闪退十有八九是浏览器版本跟浏览器插件对不上. 首先安装pyinstaller pip install pyinstaller 然后进入要打包的py文件目录 然后pyinstaller tomcat.py 这种打包方式有很多文件,不太美观 第二种打包方式:pyinstaller -F tomcat.py 下面就是重点,我之前忘记把浏览器插件复制到.exe文件目录所
-
selenium+Chrome滑动验证码破解二(某某网站)
具体详情见代码,研究网站,随便输入手机号点击获取验证码 在自己写代码前参考了一批博客,是把所有验证码图片截取所有验证码图片保存在本地,再对比,感觉方法不行,所以自己写了个破解方法,通过js修改css直接抓取完整图片,因为上一篇写了B站,这里就不一一分析了,直接上代码: 破解成功界面 完整代码: # -*- coding:utf-8 -*- ''' 研究网站: https://account.ch.com/NonRegistrations-Regist 滑块验证码也分两种: 1.直接给缺口图片,先
-
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
本文介绍了selenium设置proxy.headers的方法,把phantomjs.Chrome.Firefox几个浏览器的设置方法都总结一下,分享给大家,也给自己留个笔记 phantomjs 设置ip 方法1: service_args = [ '--proxy=%s' % ip_html, # 代理 IP:prot (eg:192.168.0.28:808) '--proxy-type=http', # 代理类型:http/https '--load-images=no', # 关闭图片加
-
Python3+Selenium+Chrome实现自动填写WPS表单
引言 本文通过python3.第三方python库Selenium和谷歌浏览器Chrome,完成WPS表单的自动填写. 开发环境配置 python3的安装:略,网上都有教程. Selenium的安装:在命令行输入pip3 install selenium并回车即可完成安装,如果不成功,查找网上教程. Chrome的安装:略,网上都有教程. 因为Selenium需要ChromeDriver来驱动Chrome,所以还需要下载驱动ChromeDriver.下面重点介绍一下Chrom
-
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
一. 打开Chrome浏览器,输chrome://version/ 二.下载chromedriver.exe驱动 注意:上图可以看到安装的Chrome浏览器版本为79.0.3945.88 (正式版本) 下载地址1:http://npm.taobao.org/mirrors/chromedriver/ 下载地址2:http://chromedriver.storage.googleapis.com/index.html Firefox浏览器驱动下载地址:https://github.com/moz
-
python selenium 执行完毕关闭chromedriver进程示例
因为使用多次以后发现进程中出现了很多chromedriver的残留,造成卡顿,所以决定优化一下. 这个问题困扰了楼主很久,百度谷歌查来查去都只有java,后面根据java和selenium结合看找出了python如何执行完把chromedriver进程关闭 Python的话控制chromedriver的开启和关闭的包是Service from selenium.webdriver.chrome.service import Service 创建的时候需要把chromedriver.exe的位置写
-
selenium+java+chrome环境搭建的方法步骤
我只能说因为版本冲突,简直太折腾了,而搜了无数个博友的帖子才找到正确条案,就不能好好的写篇文章吗? 最近真的是太闲太闲了,平时没事总得搞点技术,不然心里感觉好空虚, 最近看上了selenium,所以试一下 没啥目标 头一篇这个环境搞的崩溃了,都是版本冲突,目前为止,我还未有解决firefox与selenium的版本冲突问题 这是一篇只讲chrome的文章 1.selenium下载最新版本,我在官网下载的 http://selenium-release.storage.googleapis.com
-
selenium 安装与chromedriver安装的方法步骤
安装 selenium可以直接可以用pip安装. pip install selenium chromedriver的安装一定要与Chrome的版本一致,不然就不起作用(不要问我是怎么知道的). 有两个下载地址: 1.http://chromedriver.storage.googleapis.com/index.html 2.https://npm.taobao.org/mirrors/chromedriver/ 或者本地下载https://www.jb51.net/softs/538241.
-
Selenium使用Chrome模拟手机浏览器方法解析
在使用Chrome浏览网页时,我们可以使用Chrome开发者工具模拟手机浏览器,在使用Selenium操作Chrome时同样也可以模拟手机浏览器.主要有以下两种用途. 测试H5页面在不同分辨率设备上的显示情况是否正常爬取数据(一般网站对移动设备浏览的反爬教弱)使用指定设备 操作方法非常简单,在ChromeOptions()浏览器选项,添加实验选项,mobileEmulation选项中通过devicename指定选择的设备即可,操作代码如下. from selenium import webdri
-
Python使用selenium + headless chrome获取网页内容的方法示例
使用python写爬虫时,优选selenium,由于PhantomJS因内部原因已经停止更新,最新版的selenium已经使用headless chrome替换掉了PhantomJS,所以建议将selenium更新到最新版,使用selenium + headless chrome 准备工作: 安装chrome.chrome driver.selenium 一.安装chrome 配置yum下载源,在目录/etc/yum.repos.d/下新建文件google-chrome.repo > cd /e
-
Python Selenium参数配置方法解析
这篇文章主要介绍了Python Selenium参数配置方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 selenium.获取浏览器大小.设置浏览器位置.最大化浏览器 get_window_size() 获取浏览器大小 # 将窗口大小实例化 size_Dict = driver.get_window_size() # 打印浏览器的宽和高 print("当前浏览器的宽:", size_Dict['width']) print(&
-
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
本文实例讲述了Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能.分享给大家供大家参考,具体如下: import re from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected
-
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
本文实例讲述了PHP基于curl实现模拟微信浏览器打开微信链接的方法.分享给大家供大家参考,具体如下: 网络上没有可以直接打开微信的浏览器 但是我们可以模拟浏览器 微信浏览器的HTTP_USER_AGENT 在iPhone下,返回 Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2 在Androi
-
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
目前由于phantomjs已经不维护了,而新版的Chrome(59+)推出了Headless模式,对爬虫来说尤其是定时任务的爬虫截屏之类的是一大好事. 不过按照网络上的一些方法来写的话,会报下面的错误: 后来经过分析,他们运行python是在mac或者linux下进行的,win下由于高版本的chromedriver只能通过路径进行指定,所以会出现这类找不到驱动程序的错误. 经过比对常识网络上的各种代码,后来得出了win下可顺畅执行的driver的写法如下: from selenium impor
-
python用selenium打开chrome浏览器保持登录方式
目录 导读 selenium操作浏览器 打开chrome浏览器 使用selenium打开网站 总结 导读 我们在使用selenium打开google浏览器的时候,默认打开的是一个新的浏览器窗口,而且里面不带有任何的浏览器缓存信息.当我们想要爬取某个网站信息或者做某些操作的时候就需要自己再去模拟登陆 selenium操作浏览器 这里我们就以CSDN为例,来展示如何让selenium在打开chrome浏览器的时候带上用户的登录信息 打开chrome浏览器 from selenium import w
-
手机浏览器 后退按钮强制刷新页面方法总结
由于A界面的数据是通过ajax交互的,当你跳转到B界面,点击手机浏览器自带的后退回到A界面,由于缓存原因,读取到的数据不是最新的数据. 查了很多资料,看到网上的解决方法是清理缓存,然后页面重新向服务器发出请求. 下面整理一下,解决这个问题的方法. 方法1,HTML头部,禁止缓存: <meta http-equiv="Expires" CONTENT="0"> <meta http-equiv="Cache-Control" CO
随机推荐
- 浅析php中json_encode()和json_decode()
- Vue自定义事件(详解)
- javascript中eval解析JSON字符串
- Python中if __name__ == '__main__'作用解析
- ASP.net 路径问题 详解
- yii2.0之GridView自定义按钮和链接用法
- thinkphp的c方法使用示例
- asp xml 缓存类
- 从JavaScript的函数重名看其初始化方式
- ajax 调用后台方法大家可以讨论下
- XML入门的常见问题(一)
- 轻松掌握JavaScript装饰者模式
- js常用函数2008-8-16整理第1/2页
- 访问php时提示内存位置访问无效的解决办法和思路分析
- java从控制台接收一个数字的实例详解
- 用一个路由器完成多个路由器的功能
- Python实战小程序利用matplotlib模块画图代码分享
- 用python实现的线程池实例代码
- 阿里云CentOS 7.4 使用Flask建站的方法
- 基于多态之虚方法、抽象类、接口详解