爬虫 标签

Java网络爬虫教程 第二章 技术基础 有更新!

  |   0 评论   |   4 浏览

2. 技术基础

本章主要讲解爬虫需要用到的 Java 常识和一些类库等,方面初学者或者使用其他语言的同学快速上手,如果您本身会使用 Java 编程语言,那么本章可以略过不看。

2.1 开发环境

本教程选择 Java 编程语言环境,而没有使用 python。目前网上存在大量的 python 爬虫教程,而 Java 教程寥寥无几,这并不代表 Java 做爬虫不行,Java 语言拥有严谨的语法结构和海量的类库,我认为 Java 在开发爬虫方面拥有后发优势。

准备开发环境

JDK

Oracle官网下载 JDK 并安装。
本教程选择 Java SE 8 版本 jdk,您也可以自行选择更高版本,理论上都是向下兼容的。

IntelJ IDEA

开发工具我选择了 IDEA 而不是 Eclipse,从IntelJ官网下载并安装。

IDEA 比 Eclipse 好用太多,基本属于用过就回不去的感觉。但是 IDEA 是收费软件,建议如果有能力还是购买正版支持吧,学生凭借学生证可以申请正版授权免费使用,嫌麻烦还可以使用社区版(免费),或者自行破解,我在这里就不提供破解方法了。

MySQL

结构化数据存储,我们选用MySQL,版本选择5.7。之所以不选择更高版本,是因为目前绝大多数云服务器提供的版本最高就是5.7,为了保持统一,所以我们也选择5.7。

MySQL官网下载MySQL并安装。

为了方便测试和查看数据,我们还需要一个图形化的数据库编辑器。

这里选择Navicat for MySQL做为我们的图形化工具。

2.2 Java 基础

基础这节没啥意思,先不写了,列一下需要了解的知识点。

  • 类和对象
  • 常量
  • 命名规范
  • 基本语法
    • 条件判断
    • 循环
  • 数组
  • 位运算
  • 枚举
  • 比较器
  • 方法
  • 集合类
    • 动态数组:[]
    • 散列表:HashMap
  • 文件
    • 文本文件
    • 二进制文件

2.3 框架与类库

  • 常用工具集 Hutool
    Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以“甜甜的”。
    Hutool 是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的 bug。
    源码地址:https://www.hutool.cn
    maven 引用:
    <!-- 一个Java工具包 http://www.hutool.cn/ -->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>4.5.1</version>
    </dependency>
  • 图片处理库 thumbnailator
    thumbnailator 是谷歌出品的一个图像处理类库,可以压缩图片大小、修改尺寸、支持网络地址,便于我们采集图片并存储为统一格式,其链式赋值方式极易使用,虽然已不再维护,但是够用就好。
    源码地址:https://github.com/coobird/thumbnailator
    maven 引用:
    <!-- google图片压缩 -->
    <dependency>
        <groupId>net.coobird</groupId>
        <artifactId>thumbnailator</artifactId>
        <version>0.4.8</version>
    </dependency>

Java网络爬虫教程 第一章 爬虫概述 有更新!

  |   0 评论   |   23 浏览

1. 爬虫概述

本章简要介绍爬虫的用途和规则。

1.1 前言

现代社会,互联网让信息获取变得简单,任何人拥有一台电脑,一根网线,上至天文地理,下至鸡毛蒜皮,无不可在互联网中查到。

有效信息对于人们来说就像空气一样不可或缺,各行各业都离不开信息的采集和加工处理,农业要抓取气象数据、农产品行情数据等信息实现精准农业,金融业需要抓取上市公司基本面和技术面作为参考。

个人更加需要各种各样的有效信息来做决策使用。每个人都可以用网络爬虫技术获得更好的生存策略,避免糟糕的未来,让自己生活的更加幸福。
比如,当我要买房的时候,我选定地区抓取大量房源,然后通过定制化的条件匹配来筛选我所需要的房源,爬虫每时每刻在工作,当出现我需要的房源时,发送微信或者短信提醒我,这时候我联系中介去看房,会大大提高我的效率,甚至能抢到一些低价房源。
再比如,我抓取了各地的招聘信息,按照地区、行业进行分析,对找工作的就业人员来说,将具有指导性意义。

本系列教程,从Java基本操作开始讲解,介绍爬虫原理,引领读者入门。然后通过讲解我自己编写的多个实战案例来帮助读者融会贯通。

1.2 规则

俗话说的好:爬虫玩的好,监狱进的早。

各位有志于数据采集事业的朋友,一定要注意遵守规则,规避风险。那么都有哪些需要遵守的规则或者说需要注意的事项呢?听我一一道来。

1.2.1 不要采集敏感信息

注意不要采集敏感信息,比如拥有保密级别的文件、商业数据等信息。

1.2.2 不要采集涉及公民隐私信息

比如公民身份证编号、照片、消费记录、医疗记录等类似信息。
本条具体内容可以参考个人信息保护标准与合规实践.pdf

1.2.3 抓取网站数据时,遵守robots.txt协议

当你想爬取某一个提供公开服务的网站的数据时,请遵守robots.txt协议,不爬取robots.txt文件中声明该网站不想被爬虫访问的部分,参考robots.txt协议

注意:如果你不能遵守以上规则,所造成的一切损失与后果自行承担,本文作者不负任何连带责任,望周知。

Java网络爬虫教程 有更新!

  |   1 评论   |   316 浏览

最近准备写的系列文章,先把目录列出来,一节一节慢慢写。

目录

1. 爬虫概述

1.1 前言
1.2 规则

2. 技术基础

2.1 开发环境
2.2 Java基础
2.3 框架与类库

3. 定向采集

3.1 下载网页
3.2 下载图片与文件
3.3 Selenium

4. 信息提取

4.1 xpath解析规则
4.2 图像OCR识别

5. 数据存储

6. 高级技巧

6.1 匿名代理池
6.2 Header伪装
6.3 关键字字典
6.4 抓取进度管理

7. 实战案例

7.1 国家统计局
7.2 时光网
7.3 彩票开奖信息
7.4 代理信息
7.5 前程无忧

8. 后记