爬虫中ajax获取数据的方式(get)

在爬数据的时候,有的时候发现driver.get("body").get(0).getText()就不包含所需要的数据图表,这种情况大多是需要查看元素--网络,找到能返回json字符串或者html(查看xhr或者html)。然后模拟一个请求,以图获取它的响应。以https://premium.usnews.com/best-graduate-schools/top-business-schools/mba-rankings为例。


在火狐中打开,查看元素,网络,html中,有一个返回了整个页面的请求,就是我们需要的东西。仿照这个请求头,构造静态代码块,模拟请求,如下:

爬虫中ajax获取数据的方式(get)_第1张图片

public static Map headers = null;
     static {
            headers = new HashMap();
           // headers.put("Host", "premium.usnews.com");
            headers.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/56.0");
            headers.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
            headers.put("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
            headers.put("Accept-Encoding", "gzip, deflate, br");
            headers.put("Referer", "https://premium.usnews.com/");
            headers.put("Connection", "keep-alive");
            headers.put("Upgrade-Insecure-Requests", "1");
        }

public static String getAjax(String url)
    {
        String content = JsoupHelper.get(url, null, "utf-8", headers);
        return content;
    }

再构造一个主函数,调用这个方法,返回的内容就是整个页面的内容,需要进一步获取资料,就需要对字符串进行切分处理了。

楼主的心得就是比如 要获取table 先用


你可能感兴趣的:(java,爬虫)