我正试图用java和jsoup来获得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条答案
按热度按时间oknrviil1#
我想也许你的用户代理不太正确。
我刚刚尝试了以下内容,似乎已经点击了移动youtube网站:
更新我已经看了更详细的内容,我相信页面内容正在被一些javascript修改,一旦dom被加载。
查看上面jsoup代码返回的html,我得到了以下结果(注意content div是空的):
与chrome开发工具中查看的html相比,我发现:
jsoup只是一个html解析器,而不是web浏览器。为了达到您的要求,我想您可能需要看看这样的东西有没有一种方法可以在java中嵌入浏览器?
xcitsw882#
而不是:
.useragent(“mozilla/5.0(linux;u;安卓2.2;en-gb;lg-p500内部版本/frf91)applewebkit/533.0(khtml,类似gecko)版本/4.0 mobile safari/533.1“)
尝试:
.useragent(“opera/12.02(android 4.1);linux操作系统;opera mobi/adr-11111 01157;u;en-us)presto/2.9.201版本/12.02“)
其他选项位于:
http://www.useragentstring.com/pages/useragentstring.php
并搜索:
移动浏览器