Selenium webdriver 使用selenium webdriver获取网页的移动版本而不是桌面版本

Selenium webdriver 使用selenium webdriver获取网页的移动版本而不是桌面版本,selenium-webdriver,web-scraping,scrapy,phantomjs,Selenium Webdriver,Web Scraping,Scrapy,Phantomjs,我在Debian远程服务器上使用headless firefox,以便使用selenium webdriver获取一些数据,并在稍后传递给scrapy。我得到的不是桌面版,而是移动版的网页,我正试图从中删除数据。我需要桌面版!我知道我需要发送正确的用户代理字符串,我就是这样做的: def call_via_proxy(PROXY_HOST,PROXY_PORT): fp = webdriver.FirefoxProfile() # Direct = 0, Manu

我在Debian远程服务器上使用headless firefox,以便使用selenium webdriver获取一些数据,并在稍后传递给scrapy。我得到的不是桌面版,而是移动版的网页,我正试图从中删除数据。我需要桌面版!我知道我需要发送正确的用户代理字符串,我就是这样做的:

def call_via_proxy(PROXY_HOST,PROXY_PORT):
        fp = webdriver.FirefoxProfile()
        # Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
        fp.set_preference("network.proxy.type", 1)
        fp.set_preference("network.proxy.http",PROXY_HOST)
        fp.set_preference("network.proxy.http_port",int(PROXY_PORT))
        fp.set_preference("general.useragent.override","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0")
        fp.update_preferences()
        return webdriver.Firefox(firefox_profile=fp)
#create webdriver
driver = call_via_proxy("us.proxymesh.com","31280")
driver.get(response.url)
该代码在我的台式机(win7)上运行良好,但在需要运行代码的服务器(debian)上,我得到了一个移动版本的网页。如果我使用phantomJS,也会发生同样的情况

    #set user agents for PhantomJS
    user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) ")
    dcap = dict(DesiredCapabilities.PHANTOMJS)
    dcap["phantomjs.page.settings.userAgent"] = user_agent
    driver = webdriver.PhantomJS('/usr/local/share/phantomjs-1.9.7-linux-i686/bina/phantomjs',desired_capabilities=dcap)
    driver.get(response.url)

有没有办法通过selenium从网页获取HTTP响应代码?我想知道这里怎么了?我认为这与平台依赖性无关??有什么建议吗?

我对一些屏幕大小不同的移动响应模板有这个问题。在这个例子中,幻影似乎对我有自己的一套规则。强制桌面浏览器大小(
driver.manage().window.Size
)似乎对我有效

我没有这方面的Java代码,但在C中,这将是:

_driver.Manage().Window.Size = new Size(1024,768);    

我似乎记得有一个
Dimensions
值可以传递。我这样做,桌面页面再次出现

我自己也有同样的问题。我设置了
userAgent
,但没有设置。默认值为400x300。一旦我设置了这个,我就可以得到桌面版本了

下面是一个JS示例实现,您应该能够将其应用到您的解决方案中

var webPage = require('webpage');
var page = webPage.create();

//This is the Chrome 55 UA.
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36';

//THE ANSWER. This is just my test server resolution.
page.viewportSize = {
  width: 1600,
  height: 900
};

page.open('http://www.example.com', function(status) {

  if(status === "success") {
    //Saves an image of the page.
    page.render('example.png');
  }

  //Tidy up.
  phantom.exit();
});

您是否已尝试确认用户代理已更改?例如,使用Java看起来像这样
driver.manage().window().fullscreen()