爬虫的简介

爬虫又叫网络爬虫,是一种运行在互联网上为了获取数据的自动化程序。

爬虫的简单分类

  • 通用爬虫:百度爬取互联网上所有数据的爬虫叫做通用爬虫

  • 垂直爬虫:为做数据分析而爬取特定数据的爬虫叫做垂直爬虫

  • 分类的标准:根据数据量或者业务范围

在互联网上,大多数都是垂直爬虫,也就是爬取一定范围内的数据.

爬虫的运行原理

你自己如何获取网页上的数据?

  1. 打开一个网页

  2. 复制 标题/内容/图片

爬虫爬取一个页面的流程

  1. 指定一个URL

  2. 发起一个网络请求HTTP

  3. 得到一个HTML文档

  4. 解析HTML文档,获取自己想要的内容

爬虫爬取多个页面

  1. 将要爬取的多个URL放入list中

  2. 从list中依次拿取URL

    • 发起一个网络请求HTTP

    • 得到一个HTML文档

      • 解析HTML文档,顺便解析出这个页面上的其他要爬取的URL

        • 将上面顺便解析出来的URL存放到等待爬取的URL中

爬虫原理图

爬虫原理图.png

步骤说明:

  1. 将一个种子URL存放到队列中

  2. 从队列中读取一个URL

  3. 发起网络请求(上图4 5 6步)

    • 3.1 域名解析,得到IP地址

    • 3.2 发起HTTP请求

    • 3.3 下载页面

  4. 解析HTML文档(上图7 8 9步)

  • 解析HTML文档获取网页中所有URL

    • 分页页面是否爬取过

      • 如果没有爬取过就放入待爬取的URL队列中

分析网络爬虫开发技术

需求:爬取一个页面的内容

  1. 人的操作:找到URL输入到浏览器的地址栏 回车
    浏览器帮我们发送了网络请求

    技术实现:如何发送网络请求

    • Socket (服务端/客户端)

    • HttpURLConnection (用来访问http链接)

    • HttpClient (操作网络请求更快的API)

      三个技术点之间的关系:
      
    • Socket原生底层(ip、port) 除非我们自己开发游戏服务器

    • HttpURLConnection JDK提供的一套访问Http资源的API

    • HttpClient 基于HttpURLConnection高度封装,不需要关注网络请求的细节

  2. 人的操作:得到一个HTML文档二进制数据
    浏览器帮我们解析了二进制数据,将网页按照HTML的标准呈现给我们

    技术实现:如何获取HTML页面
    Inputstream 转化成 String 得到HTML纯文本数据
    知道HTML文档格式,因为我们要进一步解析数据

  3. 人的操作:人为的复制、粘贴操作
    通过代码来解析HTML文档,获取有用的数据

    技术实现:如何解析数据

    • Document对象
      Document对象.png

    • Jsoup 为解析HTML而生

      三个技术点之间的关系:
      Document对象是原生的API,Jsoup是更高级的框架。
      

总结:爬虫开发的两个核心技术

    * Httpclient:帮助我们更好发送网络请求
    * Jsoup:帮助我们更好的解析html。

标签: none

相关文章推荐

添加新评论,含*的栏目为必填