在Jav中使用httpclient与Jsoup实现获取动态生成的数据

这期内容当中小编将会给大家带来有关在Jav中使用httpclient与Jsoup实现获取动态生成的数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元淮阳做网站,已为上家服务,为淮阳各地企业和个人服务,联系电话:13518219792

Java爬虫Jsoup+httpclient获取动态生成的数据

String startPage="https://item.jd.com/11476104681.html";

Document document = Jsoup.connect(startPage).userAgent
("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/52.0.2743.116 Safari/537.36").get();

演示:

在Jav中使用httpclient与Jsoup实现获取动态生成的数据

通过这张截图可以看到他传过来的只是一个静态资源页面根本没有价格参数,那么价格怎么来的呢,继续找发现这个接口:

在Jav中使用httpclient与Jsoup实现获取动态生成的数据

在Jav中使用httpclient与Jsoup实现获取动态生成的数据

你会发现在这个接口是很多参数拼接上去的,那么我们要做的就是分析是不是所有的参数都有用

https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&pdtk=
pduid=14930020970791835891856&pdpin=jd_6738608ee8eed&pdbp=0&skuIds=J_11476104681&source=item-pc

可以试着删除一些参数发现最终这个接口需要的参数其实很简单:

https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&skuIds=J_11476104681&source=item-pc

看到这里是不是很激动了,你其实可以换一些其他的JD商品ID一样能获取到当前价格和最高价格已经那什么价格我也不清楚,我们需要做的只是写一个Httpclient模拟请求这个接口

String doGet = HttpUtils.doGet("https://p.3.cn/prices/mgets?callback=jQuery9734926&type=1&area=1&skuIds=J_"+"11476104681"+"&source=item-pc", null);
System.out.println(doGet);

结果是这样:

jQuery9734926([{"id":"J_11476104681","p":"880.00","m":"980.00","op":"980.00"}]);

至于后面的你直接解析下JSON字符串那么你要的数据就GET到了。

上述就是小编为大家分享的在Jav中使用httpclient与Jsoup实现获取动态生成的数据了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


当前文章:在Jav中使用httpclient与Jsoup实现获取动态生成的数据
文章分享:http://azwzsj.com/article/jiipdh.html