EasySpider采集前切换为手机模式
EasySpider采集前切换为手机模式
因为部分网站在H5的方式下提供更加合理的数据展示,但是EasySpider目前在设计阶段是可以用手机方式的,正式采集的时候只有PC模式,根据EasySpider实现的原理,先说结论:方式是可行的,按如下方式操作即可
实现方式
- 打开设计任务,通过工具箱增加自定义操作
- 执行模式选择:在执行环境下运行Python代码(exec操作)
- 在下面的代码/脚本内容插入如下内容
self.browser.execute_cdp_cmd("Emulation.setDeviceMetricsOverride", {
"width": 414,
"height": 896,
"deviceScaleFactor": 2,
"mobile": True
})
self.browser.execute_cdp_cmd("Network.setUserAgentOverride", {
"userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
})
原理分析
感谢easyspider的开源
EasySpider的原理是:通过selenium模拟浏览器,然后通过selenium的API进行页面的交互,获取数据,所以只要在selenium的API中增加代码,就可以实现模拟手机模式 EasySpider的browser对象继承了selenium webdriver.Chrome 和 webdriver.Remote,所以可以直接控制打开的浏览器和远程调试,用execute_cdp_cmd方法,可以调用Chrome DevTools Protocal,也就是Chrome开发者工具协
- 通过Emulation.setDeviceMetricsOverride设置模拟设备
- 通过Network.setUserAgentOverride设置模拟的UserAgent,这样就可以模拟手机模式了