爬虫抓取网页数据(分享一种解决方案,代码以及部分截图不方便贴出,请谅解!)

优采云 发布时间: 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博客。全文地址请点击:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线