python - 无法在桌面模式下打开 PhantomJS 网页(始终在移动模式下)

标签 python selenium-webdriver phantomjs

我一直在尝试通过堆栈溢出帖子解决此问题,但找不到任何与我的问题相关的主题。

我正在创建一个自动 python 脚本,它将自动登录到我的 facebook 帐户并利用 facebook 提供的一些功能。

当我使用 selenium 时,我通常让程序在 Chrome 浏览器上运行,我使用如下代码

driver = webdriver.Chrome()

然后我从那里编写我想做的其余事情,因为很容易直观地看到程序的进展情况。然而,当我切换到 PhantomJS 浏览器时,该程序在网站的移动版本中运行 Facebook(如 Facebook 的 android/ios 版本)。这是它的外观示例

Mobile Version

我想知道是否有人能够帮助我尝试了解如何将其转换为桌面模式,因为 Facebook 的移动版本与桌面版本的编码不同,我不想重做代码这个区别。我需要在 PhantomJS 上运行它,因为它将在几乎无法打开谷歌浏览器的低功率树莓派设备上运行。

我还尝试了以下方法以查看它是否有效,但没有帮助。

headers = { 'Accept':'*/*',                                                     
'Accept-Encoding':'gzip, deflate, sdch',                                    
'Accept-Language':'en-US,en;q=0.8',                                         
'Cache-Control':'max-age=0',                                                
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'                                  

}

driver = webdriver.PhantomJS(desired_capabilities = headers)                
driver.set_window_size(1366, 768)  

任何帮助将不胜感激!!

最佳答案

我在使用 PhantomJS Selenium 和 Python 时遇到了同样的问题,下一个代码解决了它。

from selenium import webdriver
from selenium.webdriver import DesiredCapabilities

desired_capabilities = DesiredCapabilities.PHANTOMJS.copy()
desired_capabilities['phantomjs.page.customHeaders.User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) ' \
                                                                  'AppleWebKit/537.36 (KHTML, like Gecko) ' \
                                                                  'Chrome/39.0.2171.95 Safari/537.36'
driver = webdriver.PhantomJS('./phantom/bin/phantomjs.exe', desired_capabilities=desired_capabilities)
driver.get('http://facebook.com')

关于python - 无法在桌面模式下打开 PhantomJS 网页(始终在移动模式下),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44765914/

相关文章:

javascript - CasperJS 不适用于 Centos 服务器,但适用于 Windows 10

phantomjs - 如何在 CasperJS 中 POST 请求后获取响应

javascript - 是否可以用 JavaScript 解析 .apk 文件?

python - 当 dtype 为 dtype ('O' 时,pandas 系列 idxmax() 失败)

python-3.x - 找到标签但类不可见 Python Selenium

java - 使用 selenium webdriver 从屏幕 A(网页)跳转到屏幕 B(网页),绕过中间屏幕(网页)

python - gzip.open().read() 的大小参数

javascript - 将 Flask 变量从 javascript 传递到 html

java - 元素不可见,selenium chromedriver,java

javascript - 通过在 PhantomJS 中循环抓取多个 URL