您的位置:新闻资讯 >文章内容
java怎么抓取动态网页数据
来源:伽南香071 作者:admin 时间:2018-12-21 16:51:46

  网页,有静态也有动态的,一般我们抓包可以看出真正的数据实体是由哪一个异步请求获取到的,但是获取数据的请求链接也可能由其他js产生,这个时候我们希望直接拿到js加载后的最终网页数据。如果使用java,那么java怎么抓取动态网页数据?下面跟精灵代理去了解一下动态网页的抓取方法。


  如果只是抓取网络上的特定的数据,比如静态网页,就是再简单不过了,直接使用Jsoup:


  Documentdoc=Jsoup.connect(url).timeout(2000).get();


  获取到Document,然后就想干嘛就干嘛了。


  但是一旦碰到一些动态生成的网站就不行了,由于数据是网页加载完成后执行js代码加载的,或者是用户滑动浏览触发的js加载数据,这样的网页使用Jsoup显然拿不到想要的数据。


  后来使用Selenium来获取动态网页的数据,可以成功的拿到数据。将程序打包后放在一台机器上运行,开始测试,然后结果不那么理想,经常会出现内存溢出,或者浏览器升级造成驱动与浏览器版本不匹配等一些列问题。


  解析动态网页的一种方法:


  首先动态网页,既然是动态的,那么肯定是在浏览器加载网页之后又对服务器惊醒了网络请求,如果我拿到网络请求的url,模拟参数,自己发送请求,解析数据不是更好。


  抓包工具:fiddle


  打开浏览器,打开目标url,然后就可以在fiddle看到打开这个网页所有的网络请求,一个一个查看网络请求:


java怎么抓取动态网页数据


  先看左边的图标,直接跳过图片,显然我们需要的是数据,重点查看文本格式的请求,然后右键copy->justurl复制url到浏览器看看能拿到什么,最后发现18行的请求就是数据接口,可以直接拿到数据,而且是json格式!


  java怎么抓取动态网页数据?上文分享了解析动态网页的一种方法,仅供参考!


相关文章内容简介
在线咨询
微信公众号

微信公众号

回到顶部