爬虫java版解决方案

背景

​ 最近弄个数据获取的小功能,对于如何从网页来获取数据也算是有了一个初步的了解,一路也是跌跌撞撞,看过的几个方案做个小总结吧

​ 我们浏览网页的本质其实都是获取别人的后台数据展示,当我们需要大量的数据的时候,总不能去一个个点击页面抄数据下来 吧,那么我们就可以通过代码来实现,对于绝大部分网页,页面的结构都是具有规律性的,比如淘宝网上的商品详情页这种,肯定不可能一个商品一个界面是吧,任何涉及到详情页的界面肯定都是有规律的,那么我们就可以使用代码来解析页面获取数据. (搜索引擎的爬虫就不知道了哈)

​ 综上,按照个人理解,爬虫就是个可以替换人浏览页面,获取数据的工具,所以理论上你任何网页上你看到的感兴趣的数据都可以通过爬虫来帮你获取,类似于知乎上 “**是一种什么样的体验” 啥啥的回复,是不是分分钟一键获取,咳咳…

由于不是专业爬虫,仅仅了解了几种:

一、webmagic

​ webmagic采用的是完全模块化的设计, 标准OOP思想的设计方案,比较容易上手

官网文档地址:
文档讲的很详细,可以很容易就实现基础的页面爬取

​ 优点: 文档详细,按照文档实现各个模块就可以完成一个简单版的爬虫,功能还是很强大的(支持多线程,分布式)

​ 缺点: 不能支持对动态数据的获取

二、 selenium

​ 实现是基于模拟浏览器的操作来实现数据获取,可以通过代码驱动浏览器的各个操作

优点: 可以动态的获取数据,你的任何操作都可以使用代码来进行模拟
缺点: 获取数据还会有个浏览器跑着是不是太浪费了,毕竟内存资源很宝贵的;没有完整的技术方案支持,去重还有一些东西是需要自己去实现的

​ 基于相应优缺点: 感觉这个实现爬虫并不是太好,自己去实现一些模块还是多半不如使用别的开源方案的,当然这个优点就有点意思了,网页的自动化测试好像就是这个玩意儿了

​ ps: 可以根据配置的浏览器驱动来控制浏览器,最好玩的就是代码能够自动生成,浏览器装上插件之后可以录制自己的每一步操作,然后选择导出对应的语言代码

​ 再补充一个: jar版本的兼容有问题, 用最新版的吧

三、 phantomjs

​ PhantomJS是一个基于webkit的JavaScript API。支持Dom操作、css选择器、截屏等,无界面的浏览器操作,节省内存,另外支持js脚本,功能强大。

​ 本质上是一个无界面的浏览器,和selenium算是一个互补吧,内存换可视化,按需使用就好;

​ 总结: 上面的各个其实都有局限性,如果结合一下应该是可以实现绝大部分的数据爬取功能,以上内容只是初步入门和几种解决方案,代码就不配了(需要的话去搜关键词)
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值