专栏首页不温卜火快速入门网络爬虫系列 Chapter01 | 初识网络爬虫

快速入门网络爬虫系列 Chapter01 | 初识网络爬虫

本篇博文主要介绍网络爬虫的基本概念、工作原理以及开发环境。

我们为什么要了解网络爬虫? 因为当今从事科学研究等,需要大量的数据,但是这些数据公开的又非常的少,大量的数据都在大公司的手中。我们这些普通人本身并没有那么多数据,但是我们又需要大量的数据。那么,这时我们就需要用到网络爬虫了。

一、什么是网络爬虫

网络爬虫英文名叫Web Crawler(又称Web Spiader),是一种自动浏览网页并采集你所需要的信息的程序,被广泛用于互联网搜索引擎(称为通用爬虫)。随着互联网的发展,爬虫技术不再局限于搜索领域,任何人都可以利用爬虫技术从互联网上获取自己想要的信息,如爬取电子书、商品价格等(称为垂直爬虫)。

何谓网络爬虫:

1、爬虫产生的背景

1.1、万维网的高速发展

  • 网页数量增加
  • 网页承载的信息量增加
  • 网络的拓扑结构复杂化

1.2、搜索引擎的需要

  • 提供充分的搜索服务
  • 提供精准的搜索结果
  • 提供丰富的搜索信息

1.3、领域研究的需要

  • 研究网络结构的需要网络关系
  • 研究语言的需要语料材料
  • 研究用户行为的需要用户资料

2、爬虫的概念

爬取网页:

  • 按照一定的规则,自动地抓取万维网信息地程序或者脚本

抽取信息

  • 部分或全部抽取抓取到的信息,使数据进一步结构化

存储信息

  • 将获取到的信息保存到文件或数据库中

3、网络爬虫的对象

网站website

  • 新闻类网站
  • 社交类网站
  • 购物类网站
  • 所有你想爬的网站

API

  • 天气类API
  • 微博类API
  • 只要你能被认证的API

流量数据

  • 弹幕
  • 只要有弹幕的地方

4、网络爬虫的重要性

从工业角度看

  • 数据驱动大量数据来源于网络爬虫
  • 爬虫的效率决定信息更迭的速度
  • 爬虫的准确性决定了服务的准确度

从研究角度看

  • 研究领域需要干净的数据
  • 研究领域需要不花钱的数据
  • 几乎所有社交网络研究的benchmark数据都来自爬虫

可在工业领域独当一面

  • 有数据的地方都有爬虫
  • 爬虫是一个闭环的独立工程
  • 所有的数据分析都是由爬虫开始

可自己做研究

  • 自己收集数据
  • 自己清理数据
  • 自己运算算法
  • 自己搞研究。

二、爬虫的使用范围

  • 是数据产生二次价值的第一步
  • 数据分析师的必备技能
  • 网站测试者的好伙伴

我们在使用网络爬虫时,需要遵守Robots协议。

三、爬虫的分类

1、深度优先爬虫和广度优先爬虫

①深度优先爬虫

  • 深度优先是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续追踪链接。在一个HTML文件中,当一个超链被选择后,被链接的HTML文件将执行深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独地一条链。

②广度优先爬虫

  • 广度优先,有人也叫宽度优先,是指将新下载网页发现地链接直接插入到待抓取URL队列的末尾,也就是指网络爬虫会先抓取起始页中的所有网页,然后在选择其中的一个连接网页,继续徐抓取在此网页中链接的所有网页。

2、静态网页爬虫和动态网页爬虫

①静态网页爬虫

  • 面向网页读取过程中就完成加载的网页,此类网页的主要信息会在网页加载过程中直接显示在页面上,比如一些新闻网站和比较老的网站。面向静态网页的爬虫页面逻辑比较简单,几行代码就可以完成爬取。

②动态网页爬虫

  • 网页读取过程中需要依赖额外的加载过程,比如JavaScript或者jQuery,使用静态网页的爬取方法可能获取不到数据,需要模拟动态加载过程。
  • 网页登录过程分页,需要模拟下拉、点击等操作才能加载剩余数据
  • 需要登录

3、泛用和主题爬虫

①泛用爬虫

  • 普通的没有策略和着重爬取的爬虫,由于可能会爬取一些无用的数据,效率比较低

②主题爬虫

  • 指选择性地爬取那些于预先定义好地主题相关页面地网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关地页面,极大地节省了硬件和网络资源,保存地页面也由于数量少而更新块,还可以很好地满足一些特定人群对特定领域信息的需求。

四、爬虫的基本架构

  • 网络爬虫的基本架构

需要和实现有一部分我们需要用到辅助模块。

  • 爬虫的爬取过程:
  • 爬虫的爬取过程解析:

①爬取模块——从万维网上获取数据

  • 从一个URL开始批量的获取数据
  • 将数据从互联网的海量信息中拉取到爬虫系统中进行处理

②抽取模块——处理获取的数据抽取指定的信息

  • 抽取URL加入队列,使程序持久化
  • 将原本被HTML、XML、JSON结构化的数据进一步结构化,方便数据库存储

③数据存储模块——将抽取的信息存入指定格式的载体

  • 将抽取的信息存入txt、csv、数据库等常见的数据存储中
  • 为爬虫提供数据索引,使得爬虫队列可以通过读取数据存储的方式控制爬虫运转

④辅助模块——持久化、队列与多线程

  1. 持久化 使爬虫可以尽可能长时间稳定运转 控制爬取速度,合理规避简单反爬规则
  2. 队列 控制爬虫爬取的顺序,实现深度或广度优先策略 承载URL,提供去冲、排序等操作
  3. 多线程 提高爬虫效率

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive快速入门系列(14) | Hive性能调优 [一]Fetch抓取与本地模式

      我们在刚开始学习hive的时候,都知道hive可以降低程序员的学习成本和开发成本,具体表现就在于可以将SQL语句转换成MapReduce程序运行。 Hive...

    不温卜火
  • 一文教你用Spider制作简易的翻译工具

    但是,我们通过查看网页结构,我们发现这个网址并不是我们所需要的,那么我们就需要寻找接口了。

    不温卜火
  • 快速入门网络爬虫系列 Chapter09 | JSON数据处理

    JSON是指JavaScript对象表示法(JavaScript Object Notation):

    不温卜火
  • 网络爬虫法律条文或出台:你的程序合法吗?

    2018年10月20日,一篇《独家|估值175亿的旅游独角兽,是一座僵尸和水军构成的鬼城?》的文章一出世便走红网络。文中称百亿体量的马蜂窝,其中2100万条“真...

    华章科技
  • 大专读者被裁,但他却拒绝了42k的Offer?| 一名爬虫工程师自述

    这篇文章来自我的一个读者朋友,虽然是大专学历,但精通爬虫技术。一般大厂相对比较卡学历,经过之前我的内推,阿里进行了 4 轮面试(当然内推只是第一步,能经历 4 ...

    程序猿石头
  • Python爬虫之爬虫概述

    网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟客户端(主要指浏览器)发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。

    海仔
  • 【程序源代码】python爬虫

    多种电商商品数据爬虫,整理收集爬虫练习。每个项目都是成员写的。通过实战项目练习解决一般爬虫中遇到的问题。通过每个项目的 readme,了解爬取过程分析。对于精通...

    程序源代码
  • 那些优秀的网络爬虫工具介绍,最后亮了!| 码云周刊第 16 期

    技术干货 1、SpringMVC 执行流程及源码解析 2、使用 Vue2 和 Yii2 进行前后端分离开发 3、 SSM (十一) 基于 dubbo 的分布式架...

    码云Gitee
  • 探秘|那些你不知道的爬虫反爬虫套路

    相爱相杀的爬虫与反爬虫 ? 前言 爬虫与反爬虫,是一个很不阳光的行业。 这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很...

    灯塔大数据
  • 推荐一条高效的Python爬虫学习路径!

    如果你仔细观察,就不难发现,懂爬虫、学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样的编程语言提供越来越多的优秀工具,...

    python学习教程

扫码关注云+社区

领取腾讯云代金券