用java程序模拟移动Web浏览器



我正在尝试使用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/,移动版网页加载成功。

但是,我正在尝试使用apachehttpclient库对java程序执行同样的操作,方法是如下所示设置User-Agent

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重定向。

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

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

  • http客户端+javascript
  • Apache HttpClient 4和JavaScript
  • HttpClient中的JavaScript上下文

您在HttpClient上设置了FollowRedirects吗?

最新更新