写在前面

之前二胖分享的代码多是Python的,不少粉丝在公众号后台私信我爬虫相关的技术,二胖发现很多人在潜意识里认为Python就等于爬虫。

今天分享这段代码主要是想说一下:大家不要把爬虫和Python绑定,也不要把数据分析和Python绑定,不是只有Python才可以写爬虫,Java、PHP、Lua、Ruby,甚至C++都可以写爬虫

今天给学习Java的同学推荐一款Java爬虫框架-WebCollector,然后二胖也用这个框架实现了一个微博爬虫,大约有200多行Java代码,就当做例子给初学者入门吧。

因为文本表述比较困难,所以二胖会录制视频讲解相关环境的部署以及对代码进行讲解。

微信:代码和高清视频都放在文末的留言区,需要的同学自取。

废话不多说,Let's Go!

01

WebCollector初识

WebCollector是一个无须配置、便于二次开发的Java爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。WebCollector-Hadoop是WebCollector的Hadoop版本,支持分布式爬取,也支持断点爬取。

二胖个人感觉WebCollector和Python的爬虫框架Scrapy有异曲同工之妙,在使用流程上差不多,下面这张图就是WebCollector的Github主页。

02

项目演示

二胖先给大家演示一下代码运行,由于这几天冯小刚比较火,那就抓取一下冯小刚的微博吧。抓取后的结果用Json保存放在文件中,下图就是抓取后的部分结果。

下面的视频是代码运行的例子,点开视频即可查看:

(微信公众号中视频可能不清晰,大家可以下载原视频查看,我已上传,链接在留言区)

03

环境部署

要编写代码,首先得部署环境,这里二胖录制了一个小视频教大家部署一下环境:

如视频中所言,这里二胖已经把环境依赖的库都打包好了,大家直接就能用,别忘记了Build Path。

04

爬虫简介&代码讲解

在下面的视频中,二胖给大家简单介绍一下爬虫的工作原理,然后再讲解一下这200多行代码是怎么运行的。

看完上面的视频,大家已经入门爬虫了,除了冯小刚的微博,你们还可以抓取自己想抓取的任何内容,比如马蓉的微博。

二胖有话说

二胖初学爬虫时用的就是WebCollector,因为那时候还不会Python,只会写一点Java,所以二胖是用Java入门爬虫的。

不过从使用感觉上来讲,Python稍微方便一些,和Java相比Python能用更短的代码实现相同的功能。

不过Java的性能比Python要好一些,怎么讲呢?

现在写爬虫基本都是多线程的,而Python的多线程和Java的多线程模型有些不一样,对于多核计算机,Python线程只使用了一个核,不同的用户线程一直在一个核上进行上下文切换,其他核就闲着,这是N:1的线程模型。

就像下图这张图一样:

而Java的多线程模型是真正意义上的多核模型,即每个CPU核心都在忙。

当然,这里要是不明白也没什么问题,大家可以持续关注二胖,在之后的日子里,二胖会慢慢和大家分享哈。

对爬虫而言,大多数情况下,限制抓取速度的瓶颈不在于CPU核心数,而在于网络延迟等待时间,所以对于个人抓取,Python和Java的区别不大。

本文涉及的代码,视频以及github地址放在下面的留言区了,需要的同学自取哈。

近期热文

开源一段代码-微信好友分析

从《深入理解计算机系统》谈一谈编程入门

分享一下我自学python过程中看过的那些书和那些课

分享一段代码-用Java抓取冯小刚的微博相关推荐

  1. java抓取网站数据

    java 抓取网站数据 假设你需要获取51job 人才网上java 人才的需求数量,首先你需要分析51job 网站的搜索这 一块是怎么运作的,通过解析网页的源代码,我们发现了以下一些信息: 1. 搜索 ...

  2. java抓取网页内容

    今天做项目时用到java抓取网页内容,本以为很简单的一件事但是还是让我蛋疼了一会,网上资料一大堆但是都是通过url抓取网页内容,但是我要的是读取本地的html页面内容的方法,网上找不到怎么办我瞬间了! ...

  3. Java抓取起点小说输出到本地文件夹和数据库

    Java抓取起点小说输出到本地文件夹和数据库 目录 项目结构 所需插件 项目代码 输出结果 目录 项目结构 第一次写网络爬虫,参考了别人的,也自己理解了用法 所需插件 因为使用了mevan,直接上po ...

  4. java 抓取网页乱码_java抓取网页乱码问题的处理

    今天同事做了一个我们感觉很牛B的彩票预测程序,采用的是遗传算法实现,于是我"剽"来学习先,但是部署到我电脑上以后,就有问题了: 1.用她的抓取程序得到的网页内容出现乱码,导致数据无 ...

  5. Java抓取网页数据(原网页+Javascript返回数据)

    转载请注明出处! 原文链接:http://blog.csdn.net/zgyulongfei/article/details/7909006 有时候因为种种原因,我们须要採集某个站点的数据,但因为不同 ...

  6. java抓取网页数据_实现网络图片爬虫,只需5秒快速把整个网页上的图片全下载打包zip...

    我们经常需要用到互联网上的一些共享资源,图片就是资源的一种,怎么把网页上的图片批量下载下来?有时候我们需要把网页上的图片下载下来,但网页上图片那么多,怎么下载我们想要的东西呢,如果这个网页都是我们想要 ...

  7. java抓取动态生成的网页

    最近在做项目的时候有一个需求:从网页面抓取数据,要求是首先抓取整个网页的html源码(后期更新要使用到).刚开始一看这个简单,然后就稀里哗啦的敲起了代码(在这之前使用过Hadoop平台的分布式爬虫框架 ...

  8. java实现12306查票_[转]java抓取12306信息实现火车余票查询示例firefox

    最近在弄一个微信的公众帐号,涉及到火车票查询,之前用的网上找到的一个接口,但只能查到火车时刻表,12306又没有提供专门的查票的接口.今天突然想起自己直接去12306上查询,抓取查询返回的数据包,这样 ...

  9. java 抓取新浪财经网上的股票数据(1)

    经过这两天对正则表达式以及网友一些分享资料的学习,今天终于写出了抓取股票数据挖掘的程序了,虽然大部分借鉴了一位网友的思路,但是也经过自己学习消化和封装整理,尤其是正则表达式方面(?=等特殊结构,网上资 ...

  10. java抓取页面数据_通过java抓取任何指定网页的数据

    假设你需要获取51job人才网上java人才的需求数量,首先你需要分析51job网站的搜索这一块是怎么运作的,通过解析网页的源代码,我们发现了以下一些信息: 1. 搜索时页面请求的URL是 http: ...

最新文章

  1. python函数的作用是_Python函数一
  2. winform频繁刷新导致界面闪烁解决方法
  3. 开源大数据周刊-第34期
  4. Object+C语法快速入门
  5. Activiti+oracle 启动项目时不能自动建表或更新表的问题分析及解决办法
  6. Windos下用setx.exe命令行模式下永久设置系统环境变量
  7. linux-查找文件夹
  8. Win2008 R2 VDI动手实验系列之三:远程桌面会话主机配置
  9. Android之开发杂记(一)
  10. ibm wodm studio 开发
  11. SAP中采购合同与计划协议价格关联进阶测试
  12. Unity实用案例之——屏幕画线和线框渲染
  13. error C2712: Cannot use __try in functions that require object unwinding编译错误处理
  14. 三万文字透视前瞻:区块链及隐私计算在传统企业中的技术认知与进阶思考
  15. SAP所有模块用户出口(User Exits) 一
  16. icpc2018南京站B题 tournament
  17. ubuntu 17linux输入法,Ubuntu17.04 安装搜狗中文输入法的方法
  18. C# Winform自动更新
  19. matlab 多重比较,不同组数据大小不同,怎么使用matlab进行多重比较?
  20. HTML图像、背景、颜色

热门文章

  1. 点云从入门到精通技术详解100篇-基于深度学习的三维人脸表情识别(续)
  2. 02 机器学习算法之线性回归算法
  3. linux RAID卡检查命令,Linux_Linux下查SCSI卡、RAID卡信息的命令,Host: scsi0 Channel: 00 Id: 00 Lun: 00- phpStudy...
  4. svg-icon网站
  5. 文本文档中html图片快捷键,HTML+CSS入门 常用的键盘快捷键详解
  6. 从Native到Web(一), NaCl学习笔记: 环境搭建
  7. 530分计算机类能考什么学校,职高考大学能考外省学校吗?我是重庆武隆职高的高三学生,高考能考530分左右,学的计算机软件专业,谢谢...
  8. 中国石油华东计算机的邵明文导师,邵明文
  9. 程序员周末阿里面试,5分钟就被一道题秒杀:HashMap与Hashtable
  10. DeFi之道丨DeFi被动收入初学者指南:收益耕作类型及利弊