如何使用java或jsoup获取网页的移动响应

时间:2016-03-28 09:35:51

标签: java jsoup

我正在尝试使用带有JSoup的java来获取youtube.com的响应。

我可以使用JSoup获取youtube的响应,如下所示,它返回桌面网站的响应

         String str = "https://www.youtube.com/";
         doc = Jsoup.connect(str)
                    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36")
                    .get();                

同样,我试图将移动版本的响应发送到同一网站,如下所示,

            doc = Jsoup.connect("https://"+url2.getHost()+"/search?q="+q)
                        .userAgent("Mozilla/5.0(Linux; U; Android 2.2; en-gb; LG-P500 Build/FRF91) AppleWebKit/533.0 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1")
                        .get();             

但这只能提供桌面/笔记本电脑版本的响应,而不是移动响应。

如何从jsoup获取移动响应。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我认为您的用户代理可能不太正确。

我刚试过以下内容并且似乎已经访问了移动YouTube网站:

String mob = "https://m.youtube.com/";
         mobile = Jsoup.connect(mob)
                    .userAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1")
                    .get();

<强>更新 我已经详细了解了一下,我相信一旦DOM加载,页面内容就会被一些Javascript修改。

查看上面的JSoup代码返回的HTML,我得到了这个(注意内容div是空的):

 <body id="body" class="atom fusion-tn">

  <div id="player"></div>
  <div id="guide-layout-container">
    <div id="guide-container"></div>
    <div id="content-container">
      <div id="content"></div>
    </div>
    <div id="guide-overlay"></div>
    <div id="lightbox"></div>
    <div id="toast"></div>
    <div id="content-overlay"></div>
  </div>
  <div id="_yt_orientation_detect"></div>

  </body>

与在Chrome开发工具中查看的HTML相比,我看到了这一点:

enter image description here

JSoup只是一个HTML解析器,而不是Web浏览器。为了实现您的需求,我认为您可能需要查看类似Is there a way to embed a browser in Java?

的内容

答案 1 :(得分:0)

代替:

.userAgent(&#34; Mozilla / 5.0(Linux; U; Android 2.2; en-gb; LG-P500 Build / FRF91)AppleWebKit / 533.0(KHTML,类似Gecko)版本/ 4.0 Mobile Safari / 533.1&# 34;)

<强>尝试:

.userAgent(&#34; Opera / 12.02(Android 4.1; Linux; Opera Mobi / ADR-1111101157; U; en-US)Presto / 2.9.201版本/ 12.02&#34;)

找到其他选项:

http://www.useragentstring.com/pages/useragentstring.php

并搜索:

Mobile Browsers