爬虫抓取网页数据(分享一种解决方案,代码以及部分截图不方便贴出,请谅解!)
优采云 发布时间: 2021-10-04 00:11爬虫抓取网页数据(分享一种解决方案,代码以及部分截图不方便贴出,请谅解!)
注:只是分享一个解决方案,代码和部分截图不方便贴出,请见谅!
前段时间一直在研究爬虫,爬取网上的具体数据。如果它只是一个静态网页,那就再简单不过了。直接使用Jsoup:
Document doc = Jsoup.connect(url).timeout(2000).get();
拿到了Document,只想做,但是一旦遇到一些动态生成的网站,就不行了,因为数据是在网页加载后执行js代码加载的,或者由用户滑动js触发加载数据,这样的网页使用Jsoup显然无法获取到想要的数据。
后来我用Selenium来获取动态网页的数据。可以成功获取数据(实现方法),打包程序在机器上运行,开始测试,结果不是那么理想,经常会出现内存溢出,或者浏览器升级导致的驱动与浏览器版本不匹配等一系列问题。今天早上来公司,发现程序又炸了。半夜,没有人碰这台机器。鼠标和键盘都失败了。我不得不重新启动它,更不用说任何问题了。测试和修改测试太麻烦,所以我打算放弃使用Selenium。稳定性太差了。考虑使用 htmlunit 和其他。但是,这些工具的效果都不是很好,我也无路可走,
首先是动态网页,既然是动态的,那肯定是浏览器加载网页后向服务器发送了网络请求。如果拿到网络请求的url,模拟参数,自己发送请求,解析数据也不好,开始做:
抓包工具:fiddle
如果你不懂fiddle,建议百度了解一下
安装完成后,打开fiddle,打开浏览器,打开目标url,然后就可以看到fiddle打开这个网页的所有网络请求:
我不会在这里发图片,我怕他们会惹我。. . .
然后一一检查网络请求:
先看左边的图标,直接跳过图片。显然,我们需要的是数据。关注文本格式的请求,然后右击copy->just url把url复制到浏览器看看能得到什么,最后找到18行的请求是数据接口,可以直接获取数据,而且是json格式!!!!!!!!
真的很爽,直接json,接下来,很容易解析数据。. . . . . . . 轻微地。. . . . . 话不多说,继续打代码,这里只是分享一个解析动态网页的方法,有不懂的欢迎评论写在这里,大家一起讨论,找到更好的解决方法!
2016-11-07
甘南乡
--------------------- 本文来自甘南翔的CSDN博客。全文地址请点击: