gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:47:06 25 4
gpt4 key购买 nike

我正在尝试使用带有 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获取移动响应。

提前致谢。

最佳答案

我认为您的 User-Agent 可能不太正确。

我刚刚尝试了以下内容,似乎已经访问了移动版 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 解析器,而不是网络浏览器。为了达到你的要求,我想你可能需要看看这样的东西 Is there a way to embed a browser in Java?

关于java - 如何使用java或jsoup获取网页的移动响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36259577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com