请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

如何模拟手机?

老师,我想问一下,我如果ua设置为iphone,但是分辨率不设置的话,别人一检测比如window.screen.width,发现你分辨率不是iphone的分辨率啊,这不明显爬虫吗,这个反扒手段是不是无解?

正在回答

2回答

from selenium import webdriver
mobile_emulation = { "deviceName": "Google Nexus 5" }
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                          desired_capabilities = chrome_options.to_capabilities())

试试这个呢

0 回复 有任何疑惑可以回复我~
  • 提问者 小鸡变鸟3480968 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-06-23 16:47:53
  • 提问者 小鸡变鸟3480968 #2
    这方法可以,老师,这个问题我找了好久了,你是怎么解决的啊,有文档吗,我想看看你这些代码是什么意思
    回复 有任何疑惑可以回复我~ 2017-06-23 16:49:16
  • 提问者 小鸡变鸟3480968 #3
    老师,这样其实不是改分辨率,是调用了谷歌的mobile_emulation这个接口,我设置成Apple iPhone 7报错,设置Apple iPhone 5就没问题了.有没有那种能改分辨率的接口,因为我还想改pc的分辨率,而且我想自己设置UA,其实我很好奇他这个原理是什么,因为百度统计的原理是window.screen.width,按道理,这个window变量是改不了的
    回复 有任何疑惑可以回复我~ 2017-06-23 17:09:46
bobby 2017-06-20 09:27:15

这个问题并非无解,selenium是可以控制手机访问的, 而且一般网站不会做这么细的监控的, 但是不排除反爬严重的网站会做这种, 不过也没有关系 反复使用浏览器的ua就行了 不适用iphone的ua就行了

0 回复 有任何疑惑可以回复我~
  • 提问者 小鸡变鸟3480968 #1
    但是我现在就是要用手机的ua呢?老师,用谷歌浏览器的开发者模式是可以模拟手机的,现在他有有了无头模式,但是不知道怎么用他的借口模拟手机,查了好久.
    回复 有任何疑惑可以回复我~ 2017-06-20 10:02:13
  • 提问者 小鸡变鸟3480968 #2
    你像百度检查代码里就有window.screen.width
    回复 有任何疑惑可以回复我~ 2017-06-20 10:03:28
  • bobby 回复 提问者 小鸡变鸟3480968 #3
    from selenium import webdriver
    
    mobile_emulation = { "deviceName": "Google Nexus 5" }
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)
    driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                              desired_capabilities = chrome_options.to_capabilities())
    回复 有任何疑惑可以回复我~ 2017-06-21 09:29:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信