java爬虫抓取动态网页(解析解析动态网页的一种方法:仅供参考左边的抓取方法)
优采云 发布时间: 2021-10-26 23:06java爬虫抓取动态网页(解析解析动态网页的一种方法:仅供参考左边的抓取方法)
网页是静态的和动态的。一般我们可以通过抓包来找出真正的数据实体是哪个异步请求获取的,但是获取数据的请求链接也可能是其他js生成的。这时候,我们希望直接得到js加载后的最终网页数据。如果使用java,java是如何抓取动态网页数据的?下面就和精灵代理聊一聊动态网页的爬取方法。
如果只是抓取互联网上的特定数据,比如静态网页,那就再简单不过了,直接使用Jsoup:
Documentdoc=Jsoup.connect(url).timeout(2000).get();
获取文档,然后做你想做的。
但是一旦遇到一些动态生成的网站,就不行了,因为数据是在网页加载后执行js代码加载的,或者是用户滑动浏览触发的js加载数据,这样的网页使用 Jsoup 显然得不到你想要的数据。
后来使用Selenium获取动态网页的数据,就可以成功获取到数据了。打包程序在机器上运行,开始测试,结果不太理想,经常出现内存溢出,或者浏览器升级导致驱动和浏览器版本不匹配等一系列问题。
一种解析动态网页的方法:
首先是动态网页,既然是动态的,浏览器加载网页后,必须唤醒对服务器的网络请求。如果我拿到网络请求的url,模拟参数,自己发送请求,解析数据也不是更好。
抓包工具:fiddle
打开浏览器,打开目标url,然后就可以看到fiddle打开这个页面的所有网络请求,并一一查看网络请求:
先看左边的图标,直接跳过图片。显然,我们需要的是数据。专注于文本格式的请求。然后右键copy->justurl,把url复制到浏览器,看看能得到什么。最后,18行请求是Data接口,可以直接获取数据,而且是json格式!
java如何抓取动态网页数据?上面分享了一种解析动态网页的方法,仅供参考!