如何抓取移动网站java?

时间:2015-09-18 22:19:34

标签: java

我想阅读网站的移动版本,但我的程序会读取普通网站。

我正在使用此属性

connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); 

我应该做什么?

2 个答案:

答案 0 :(得分:0)

根据请求的“User-Agent”属性决定服务器提供哪个页面。

要获取该页面的移动版本,请查看this chrome dev文章,详细说明Android用户代理字符串上的chrome,并将标题中的“User-Agent”字符串设置为移动版的字符串客户;它看起来不像您在问题中使用的用户代理字符串是移动客户端的字符串。

例如,

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
String userAgent = "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19";

try {
    httppost.setHeader("User-Agent", userAgent);
    // Add your data

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);
    // ....
} catch ... {

这应该会为您提供网页的移动版本,就像Galaxy Nexus设备所见。

答案 1 :(得分:0)

以下是大量移动浏览器用户代理字符串的列表:http://www.useragentstring.com/pages/Mobile%20Browserlist/

也许尝试使用不同的用户代理字符串:

  

Opera / 9.80(J2ME / MIDP; Opera Mini / 9(兼容; MSIE:9.0; iPhone; BlackBerry9700; AppleWebKit / 24.746; U; en)Presto / 2.5.25版本/ 10.54