我正在尝试使用Java程序加载网页的移动版本,以便轻松地从网页中提取少量信息。

在Firefox中,添加用户代理切换器插件后,我添加了一个新的用户代理,其值

"Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413"


此后,如果我尝试加载http://www.bbc.co.uk/,则该网页的移动版本已成功加载。

但是我试图通过设置User-Agent来使用apache httpclient库对Java程序执行相同的操作,如下所示:

HttpClient httpclient = new DefaultHttpClient();

HttpProtocolParams.setUserAgent(httpclient.getParams(),
  "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413");


但是我没有获得相同链接的移动版本。

我希望重定向将在此处自动进行,并且随着用户代理的修改,我将获得该页面的移动版本。

您能帮我解决这个问题吗?

最佳答案

HttpClient不支持JavaScript redirection


  请注意,HttpClient不是浏览器。重要的是,它缺少UI,缓存,HTML渲染器和JavaScript引擎。要了解有关HttpClient范围的更多信息,请参阅HttpClient入门


也许您可以尝试这些问题中提出的解决方案


httpclient + javascript
Apache HttpClient 4 And JavaScript
JavaScript Context in HttpClient

关于java - 从Java程序模拟移动Web浏览器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9977935/

10-13 04:23
查看更多