网络爬虫简介
前言
没什么可以讲的所以就介绍爬虫吧
介绍
网络爬虫(英语:web crawler),也叫网路蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。

网路搜索引擎等站点通过爬虫软体更新自身的网站内容(英语:Web content)或其对其他网站的索引。网路爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引(英语:Index (search engine))供用户搜索。
爬虫访问网站的过程会消耗目标系统资源。不少网络系统并不默许爬虫工作。因此在访问大量页面时,爬虫需要考虑到规划、负载,还需要讲“礼貌”。 不愿意被爬虫访问、被爬虫主人知晓的公开站点可以使用robots.txt文件之类的方法避免访问。这个文件可以要求机器人(英语:Software agent)只对网站的一部分进行索引,或完全不作处理。互联网上的页面极多,即使是最大的爬虫系统也无法做出完整的索引。因此在公元2000年之前的万维网出现初期,搜索引擎经常找不到多少相关结果。现在的搜索引擎在这方面已经进步很多,能够即刻给出高质素结果。爬虫还可以验证超连结和HTML代码,用于网络抓取。
命名
网络爬虫也可称作网络蜘蛛、蚂蚁、自动索引程序(automatic indexer),或(在FOAF(英语:FOAF (software))软件中)称为网络疾走(web scutter)。
概述
网络爬虫始于一张被称作种子的统一资源地址(URL)列表。当网络爬虫访问这些统一资源定位器时,它们会甄别出页面上所有的超链接,并将它们写入一张“待访列表”,即所谓爬行疆域(英语:crawl frontier)。此疆域上的URL将会被按照一套策略循环来访问。如果爬虫在执行的过程中复制归档和保存网站上的信息,这些档案通常储存,使他们可以较容易的被查看。阅读和浏览他们储存的网站上并即时更新的信息,这些被储存的网页又被称为“快照”。越大容量的网页意味着网络爬虫只能在给予的时间内下载越少部分的网页,所以要优先考虑其下载。高变化率意味着网页可能已经被更新或者被取代。一些服务器端软件生成的URL(统一资源定位符)也使得网络爬虫很难避免检索到重复内容。
但是互联网的资源卷帙浩繁,这也意味着网络爬虫只能在一定时间内下载有限数量的网页,因此它需要衡量优先顺序的下载方式。有时候网页出现、更新和消失的速度很快,也就是说网络爬虫下载的网页在几秒后就已经被修改或甚至删除了。这些都是网络爬虫设计师们所面临的两个问题。
再者,服务器端软件所生成的统一资源地址数量庞大,以致网络爬虫难免也会采集到重复的内容。根据超文本传输协定,无尽组合的参数所返回的页面中,只有很少一部分确实传回正确的内容。例如:数张快照陈列室的网站,可能通过几个参数,让用户选择相关快照:其一是通过四种方法对快照排序,其二是关于快照分辨率的的三种选择,其三是两种文件格式,另加一个用户可否提供内容的选择,这样对于同样的结果会有48种(432)不同的统一资源地址与其关联。这种数学组合替网络爬虫造成了麻烦,因为它们必须越过这些无关脚本变化的组合,寻找不重复的内容。
爬虫策略
爬虫的实现由以下策略组成:
- 指定页面下载的选择策略
- 检测页面是否改变的重新访问策略
- 定义如何避免网站过度访问的约定性策略
- 如何部署分布式网络爬虫的并行策略
选择策略
链接跟随限制
爬虫可能只想搜索HTML页面而避免其他MIME 类型。为了只请求HTML资源,爬虫在抓取整个以GET方式请求的资源之前,通过创建HTTP的HEAD请求来决定网络资源的MIME类型。为了避免发出过多的请求,爬虫会检查URL和只请求那些以某些字符(如.html, .htm, .asp, .aspx, .php, .jsp, .jspx 或 / )作为后缀的URL。这个策略可能会跳过很多HTML网络资源。
为了避免掉入从网站下载无限量的URL的爬虫陷阱,有些爬虫还能避免请求一些带有“?”的资源(动态生成)。不过假若网站重写URL以简化URL的目的,这个策略就变得不可靠了。
URL规范化
爬虫通常使用某些URL规范化的方式以避免资源的重复爬取。URL规范化,指的是以某种一致的方式修改和标准化URL的过程。这个过程有各种各样的处理规则,包括统一转换为小写、移除“.”和“…”片段,以及在非空路径里插入斜杆。
路径上移爬取
有些爬虫希望从指定的网站中尽可能地爬取资源。而路径上移爬虫就是为了能爬取每个URL里提示出的每个路径。例如,给定一个Http的种子URL: http://llama.org/hamster/monkey/page.html ,要爬取 /hamster/monkey/ , /hamster/ 和 / 。Cothey发现路径能非常有效地爬取独立的资源,或以某种规律无法在站内链接爬取到的资源。
主题爬取
对于爬虫来说,一个页面的重要性也可以说是,给定查询条件一个页面相似性能起到的作用。网络爬虫要下载相似的网页被称为主题爬虫或局部爬虫。这个主题爬虫或局部爬虫的概念第一次被Filippo Menczer和 Soumen Chakrabarti 等人提出的。
重新访问策略
网站的属性之一就是经常动态变化,而爬取网站的一小部分往往需要花费几个星期或者几个月。等到网站爬虫完成它的爬取,很多事件也已经发生了,包括增加、更新和删除。 在搜索引擎的角度,因为没有检测这些变化,会导致存储了过期资源的代价。最常用的估价函数是新鲜度和过时性。 新鲜度:这是一个衡量抓取内容是不是准确的二元值。在时间t内,仓库中页面p的新鲜度是这样定义的:

过时性:这是一个衡量本地已抓取的内容过时程度的指标。在时间t时,仓库中页面p的时效性的定义如下:

平衡礼貌策略
爬虫相比于人,可以有更快的检索速度和更深的层次,所以,他们可能使一个站点瘫痪。不需要说一个单独的爬虫一秒钟要执行多条请求,下载大的文件。一个服务器也会很难响应多线程爬虫的请求。 就像Koster所注意的那样,爬虫的使用对很多工作都是很有用的,但是对一般的社区,也需要付出代价。使用爬虫的代价包括:
网络资源:在很长一段时间,爬虫使用相当的带宽高度并行地工作。
服务器超载:尤其是对给定服务器的访问过高时。
质量糟糕的爬虫,可能导致服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页面。
个人爬虫,如果过多的人使用,可能导致网络或者服务器阻塞。
对这些问题的局部解决方法是漫游器排除协议(Robots exclusion protocol),也被称为robots.txt议定书,这份协议是让管理员指明网络服务器的不应该爬取的约定。这个标准没有包括重新访问一台服务器的间隔的建议,虽然设置访问间隔是避免服务器超载的最有效办法。最近的商业搜索引擎,如Google,Ask Jeeves,MSN和Yahoo可以在robots.txt中使用一个额外的 “Crawl-delay”参数来指明请求之间的延迟。
并行策略
一个并行爬虫是并行运行多个进程的爬虫。它的目标是最大化下载的速度,同时尽量减少并行的开销和下载重复的页面。为了避免下载一个页面两次,爬虫系统需要策略来处理爬虫运行时新发现的URL,因为同一个URL地址,可能被不同的爬虫进程抓到。
相关文章:
网络爬虫简介
前言 没什么可以讲的所以就介绍爬虫吧 介绍 网络爬虫(英语:web crawler),也叫网路蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。 网路搜索引擎等站点通过…...
通过4个月的自动化学习,现在我也拿到了25K的offer
毕业后的5年,是拉开职场差距的关键时期。有人通过这5年的努力,实现了大厂高薪,有人在这5年里得到贵人的赏识,实现了职级的快速拔升,还有人在这5年里逐渐掉队,成了职场里隐身一族,归于静默。 而…...
分库分表了解
数据切分根据其切分类型,可以分为两种方式:垂直(纵向)切分和水平(横向)切分一:垂直(纵向)切分【基于表或字段划分,表结构不同】1:垂直分库根据业务…...
docker中 gitlab 安装、配置和初始化
小笔记:gitlab配置文件 /etc/gitlab/gitlab.rb 配置项jcLee95 的CSDN博客:https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/1…...
有哪些好用的C++Json库?
文章目录RapidJSONJSON for Modern CBoost.PropertyTreeJanssonPicoJSONC REST SDKnlohmann json(ky用的这个)jsoncpp(cw用的这个)RapidJSON RapidJSON是一个快速、高效的C JSON解析器和生成器,支持SAX和DOM两种解析模…...
Docker 快速上手学习入门教程
目录 1、docker 的基础概念 2、怎样打包和运行一个应用程序? 3、如何对 docker 中的应用程序进行修改? 4、如何对创建的镜像进行共享? 5、如何使用 volumes 名称对容器中的数据进行存储?// 数据挂载 6、另一种挂载方式&…...
深度学习笔记:误差反向传播(1)
1 计算图 计算图使用图(由节点和边构成的图)来表达算式。 如图,我们用节点代表运算符号,用边代表传入的参数,即可算出购买苹果和橘子的总价格。 2 计算图的局部计算 局部计算意味着每个节点只处理和其相关的运算&…...
锁相环(1)
PLL代表相位锁定环。顾名思义,如下图所示,PLL是一种具有反馈循环的电路,可将反馈信号的相/频率保持与参考输入信号的相/频率相同(锁定)。 如下图所示,如果参考输入和反馈输入之间存在相位差,则…...
2023金三银四跳槽必会Java核心知识点笔记整理
现在互联网大环境不好,互联网公司纷纷裁员并缩减 HC,更多程序员去竞争更少的就业岗位,整的 IT 行业越来越卷。身为 Java 程序员的我们就更不用说了,上班 8 小时需要做好本职工作,下班后还要不断提升技能、技术栈&#…...
二十四节气—雨水,好雨知时节,当春乃发生。
雨水,是二十四节气之第2个节气。 雨水节气不仅表明降雨的开始及雨量增多,而且表示气温的升高,意味着进入气象意义的春天。 雨水节是一个非常富有想象力和人情味的节气,在这一天,不管下不下雨都充满着一种雨意蒙蒙的诗…...
为什么要使用数据库?
随着互联网技术的高速发展,预计2020 年底全世界网民的数量将达到 50 亿。网民数量的增加带动了网上购物、微博,网络视频等产业的发展。那么,随之而来的就是庞大的网络数据量。 大量的数据正在不断产生,那么如何安全有效地存储、检…...
【原创】java+swing+mysql图书管理系统设计与实现
图书管理系统是一个比较常见的系统,今天我们主要介绍如何使用javaswiingmysql去开发一个cs架构的图书管理系统,方便学生进行图书借阅。 功能分析: 宿舍报修管理系统的使用角色,一般分为管理员和学生,管理员主要进行学…...
图论 —— 强连通分量
概念 连通图 无向图 G G G 中,若对任意两点 V i , V j V_i, V_j V<...
计算机网络(二):物理层和链路层,通道复用,MAC地址,CSMA/CD协议,PPP点对点协议
文章目录一、物理层主机之间的通信方式通道复用技术常见的宽带接入技术二、链路层MAC地址和IP地址分别有什么作用为什么有了MAC地址之后还需要IP地址为什么有了IP地址还需要MAC地址以太网中的CSMA/CD协议数据链路层上的三个基本问题PPP协议一、物理层 主机之间的通信方式 单工…...
英语基础-定语从句的特殊用法及写作应用
1. 定语从句的引导词省略的情况 1. that 引导定语从句,从句中缺宾语/表语,that可省略; This is the book that he likes. I like the shirt that you gave me. We do not agree on the plan that you make. China is not the country th…...
[数据结构]---八大经典排序算法详解
🐧作者主页:king&南星 🏰专栏链接:c 文章目录一、八大排序算法复杂度对比二、基于比较的排序算法1.冒泡排序2.选择排序3.插入排序4.希尔排序5.直观感受四种算法的时间复杂度三、基于非比较的排序算法1.基数排序2.箱(桶)排序四…...
Go语言设计与实现 -- 反射
Go的反射有哪些应用? IDE中代码的自动补全对象序列化fmt函数的相关实现ORM框架 什么情况下需要使用反射? 不能明确函数调用哪个接口,需要根据传入的参数在运行时决定。不能明确传入函数的参数类型,需要在运行时处理任意对象。 …...
利用5G工业网关实现工业数字化的工业互联网解决方案
5G工业网关是一种用于将工业生产环境中的数据连接到工业互联网的解决方案。它可以利用高带宽、高速率、低时延的5G网络连接工业现场的PLC、传感器、工业设备和云端数据中心,从而实现工业数字化。 物通博联工业互联网解决方案 物通博联5G工业网关的使用步骤&#x…...
朋友当上项目测试组长了,我真的羡慕了
最近我发现一个神奇的事情,我一个朋友居然已经当上了测试项目组长,据我所知他去年还是在深圳的一家创业公司做苦逼的测试狗,短短8个月,到底发生了什么? 于是我立刻私聊他八卦一番。 原来他所在的公司最近正在裁员&am…...
element-ui实现动态添加表单项并实现事件触发验证验证
需求分析:点击新增后新增一个月度活动详情,提交时可同时提交多个月度活动详情。点击某一个月度活动信息的删除后可删除对应月度活动信息 H5部分: <el-dialog :title"title" :visible.sync"open" append-to-body>…...
别再复制粘贴了!手把手教你为51单片机LCD12864制作自定义中文字库(Keil C51环境)
从零构建51单片机LCD12864自定义中文字库的完整实战指南 在嵌入式显示领域,标准字库往往无法满足个性化需求。当我们需要在LCD12864屏幕上显示特殊符号、品牌LOGO或艺术字体时,自定义字库技术就成为关键突破点。本文将彻底解析从字模提取到ROM优化的全流…...
Yarbo 机器人割草机调整策略:远程后门访问功能将设为可选安装
Yarbo 调整远程后门访问功能,设为可选安装Yarbo 原有的远程后门访问功能可能使不法分子通过互联网对机器人进行重新编程。如今,该公司计划彻底移除这一功能,联合创始人肯尼斯科尔曼承诺,客户将能够决定是否一开始就安装该功能&…...
oh-my-prompt:打造高效终端提示符的模块化方案与实战配置
1. 项目概述:为什么我们需要一个现代化的终端提示符?如果你和我一样,每天有超过一半的工作时间是在终端(Terminal)里度过的,那么终端提示符(Prompt)就是你最熟悉的“工作台面”。默认…...
别再只会用0填充了!Pandas DataFrame.fillna() 的6个高阶用法,数据分析师必看
别再只会用0填充了!Pandas DataFrame.fillna() 的6个高阶用法,数据分析师必看 在数据分析的日常工作中,缺失值处理就像是一道无法回避的数学题。许多刚入行的分析师会条件反射般地输入.fillna(0),这就像用创可贴处理所有伤口——有…...
IP2366至为芯支持C口双向快充的140W多串锂电池充放电SOC芯片
英集芯IP2366是一款应用于移动电源、电动工具、智能家居、储能电源等方案的多串锂电池充电SOC芯片。支持高达140W的双向同步升降压充放电,充电电流可达5A。支持2至6节锂电池/磷酸铁锂电池串联,集成PD3.1、QC3.0等多种快充协议。内置14bit ADC,…...
中国地址生成器:快速生成真实地址数据的开发者利器
中国地址生成器:快速生成真实地址数据的开发者利器 【免费下载链接】chinese-address-generator 中国地址生成器 - 三级地址 四级地址 随机生成完整地址 项目地址: https://gitcode.com/gh_mirrors/ch/chinese-address-generator 在开发测试、数据填充、表单…...
告别重复点击!淘金币自动化脚本让你每天多出20分钟自由时间
告别重复点击!淘金币自动化脚本让你每天多出20分钟自由时间 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi …...
初创公司如何借助Taotoken控制大模型API试用与正式成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何借助Taotoken控制大模型API试用与正式成本 对于初创公司而言,在产品从原型验证到正式上线的过程中&#x…...
南京彩钢瓦屋面防水供应商
在南京,彩钢瓦屋面广泛应用于各类建筑,然而其防水问题一直是困扰众多业主的难题。选择一家靠谱的彩钢瓦屋面防水供应商至关重要。今天就为大家详细介绍雨中行修缮工程有限公司,同时也对比其他一些大厂,看看雨中行修缮为何能在市场…...
taotoken的token plan套餐让长期使用的成本预测变得简单
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 的 Token Plan 套餐让长期使用的成本预测变得简单 对于将大模型 API 深度集成到业务流程中的团队而言,成本管…...
