为什么YouTube在浏览器中返回的结果与原始HTTP请求中返回的结果不同?

时间:2019-07-11 00:21:32

标签: web-scraping youtube jsoup

我正在编写一种方法,该方法使用到www.youtube.com/results页面的HTTP请求搜索YouTube。但是,当我在Chrome中执行相同的搜索时,将获得的结果与来自inspect元素的结果进行比较时,我注意到了差异。是什么原因造成的?

我在请求中将用户代理字符串设置为Mozilla / 5.0,因此我期望浏览器的结果与方法的结果匹配。相反,我看到方法响应包含带有“ yt-lockup-title”类的标签,但是使用inspect元素时,没有这样的类。

public static String search(String query) throws IOException {
    Document results = Jsoup.connect("https://www.youtube.com/results").data("search_query", query).userAgent("Mozilla/5.0").get();
    System.out.println(results.body());
    return results;
}

该方法打印包含<div class="yt-lockup yt-lockup-tile yt-lockup-video ...的HTML,但是当我从inspect元素中搜索结果时,没有包含前缀“ yt-lockup”的类。

0 个答案:

没有答案