爬虫入门——1、基本概念

news2024/9/21 10:54:54

1、爬虫是什么

网络爬虫(又称网络机器人),是一种按照一定的规则,自动地抓取网络信息的程序或者脚本。
通俗地讲,我们把互联网比作一张大蜘蛛网,每个站点资源比作蜘蛛网上的一个结点,爬虫就像一只蜘蛛,按照设计好的路线和规则在这张蜘蛛网上找到目标结点,获取资源。

2、为什么使用爬虫

为什么我们需要使用爬虫呢?
1 你的工作是每天整理新闻,获取与目标题材相关的新闻信息,那么就需要你每天固定时间去看新闻网站的更新内容,并一点点复制下来整理。这无疑是费时费力且折磨人的。
2 你非常喜欢某个明星,想把网站中关于她的照片下载下来,然而这个网站并没有提供批量下载的接口,本着对爱豆的执着你决定自己一张张下载,然后你看着长达200多页的页面陷入了沉思。
而在这些场景中,使用爬虫技术可以很轻易地解决问题。所以,我们可以看到,爬虫技术主要可以帮助我们做两类事情:一类是数据获取需求,主要针对特定规则下的大数据量的信息获取;另一类是自动化需求,主要应用在类似信息聚合、搜索等方面。

3、爬虫的主要流程

对于个人来说,爬虫的主要需求是找到自己需要的内容,并处理保存等。此类爬虫一般称为焦点爬虫。是指选择性地爬取那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬取特定的网页,爬取的广度会小很多。如只爬取明星的照片等。

个人获取信息的过程基本可以概述为 :
用户输入网址 —> 找到服务器主机 —> 向服务器发出一个请求 —> 服务器发送给用户的浏览器 HTML、JS、CSS 等文件 —> 浏览器解析 —> 用户查看。
而爬虫一般可以绕过浏览器,直接发送请求,接收数据。然后通过自己的需求修改筛选内容等。这种主要过程如下图
在这里插入图片描述

首先我们需要有一个种子 URL 队列,这个队列中的 URL 相当于我们蜘蛛爬行的第一个结点,是我们在大网中爬行的第一步。
对队列中的每一个 URL 进行请求,我们会得到响应内容,通常响应内容为HTML。如果响应内容里面有我们的目标 URL,提取出来加入 URL 队列中。
解析响应内容,提取我们需要的数据。
存储数据,我们可以将数据存储到数据库、文件等。

4、爬虫主要内容

从这个爬虫的流程来看,学习爬虫需要学习的关键步骤可总结如下:
1、首先我们需要像浏览器一样请求某个 URL ,来获取某个主机的资源,那么请求的方法和正确地获取内容就是我们学习的重点。
2、我们获取到资源(也就是请求 URL 之后获得的响应内容)之后,我们需要对响应的内容进行解析,从而获取到对我们有价值的数据,这里面的解析方法就是学习的重点了。
3、我们获取到数据之后,接下来就需要存储数据了,数据的存储方法也很重要。
所以我们学习的爬虫技术,实际上可以归纳为请求、解析和存储三个基本问题。熟练掌握这三个问题对应的解决方法,爬虫技术就算是掌握了。大家在学习爬虫的过程中,紧紧围绕这三个问题展开,就不会走弯路了。

总结

本节给大家介绍了爬虫的基本概念,让大家对爬虫有一个大致的了解,以便后续章节的学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/60336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【spark】第二章——SparkCore之运行架构及核心编程

文章目录1. Spark 运行架构1.1 1 运行架构1.2 核心组件1.2.1 Driver1.2.2 Executor1.2.3 Master & Worker1.2.4 ApplicationMaster1.3 核心概念1.3.1 Executor 与 Core1.3.2 并行度(Parallelism)1.3.3 有向无环图(DAG)1.4 提交…

Compiere的应用字典介绍

模型驱动架构介绍 本章介绍了Compiere的模型驱动架构和Compiere的数据字典功能。 在大多数应用程序中,开发人员必须设计代码并测试每个屏幕。这可能是非常耗时的,并导致整个应用程序在外观和感觉以及功能方面的不一致。 这也会使用户难以学习像ERP这样复…

H5 Canvas 垂直箭头绘制

效果 ⚠ 因为使用的是斜率来处理的垂直逻辑 tan,当为被除数为0时做了特殊处理,两点自由变换时到达零界点会有卡顿。 推导 开始复习初中二年级数学知识 斜率k的公式:k(y1−y2)(x1−x2)k \dfrac{(y_1 -y_2)}{(x_1 - x_2)}k(x1​−x2​)(y1​…

【三维目标检测】VoteNet(一)

VoteNet是用于点云三维目标检测模型算法,发表在ICCV 2019《Deep Hough Voting for 3D Object Detection in Point Clouds》,论文地址为“https://arxiv.org/abs/1904.09664”。VoteNet核心思想在于通过霍夫投票的方法实现了端到端3D对象检测网络&#xf…

LeetCode 852. 山脉数组的峰顶索引

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 852. 山脉数组的峰顶索引 ,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 Leet…

[Error]适配iPad时调用UIAlertController和UIActivityViewController软件崩溃问题

问题&#xff1a; 适配iPad时&#xff0c;调用UIAlertController和UIActivityViewController软件崩溃。iPhone设备上软件运行正常。 错误打印如下&#xff1a; Thread 1: "UIPopoverPresentationController (<UIPopoverPresentationController: 0x12f33b020>) sho…

管道模式 流处理

&#xff08;一&#xff09;介绍 管道这个名字源于自来水厂的原水处理过程。原水要经过管道&#xff0c;一层层地过滤、沉淀、去杂质、消毒&#xff0c;到管道另一端形成纯净水。我们不应该把所有原水的过滤都放在一个管道中去提纯&#xff0c;而应该把处理过程进行划分&#…

Pytorch Bert 中文分类 运行代码时候遇到的问题

问题1 bert AutoModel.from_pretrained(bert-base-chinese) 报错信息如下&#xff1a; RuntimeError: Error(s) in loading state_dict for BertModel: size mismatch for bert.embeddings.word_embeddings.weight: copying a param with shape torch.Size([21128, 768…

m基于GA遗传算法的PMSM永磁同步电机参数最优计算matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 永磁同步电机&#xff08;PMSM&#xff09;基本结构为定子、转子和端盖。其中转子磁路结构是永磁同步电机与其它电机最主要的区别&#xff0c;其在很大程度上决定了永磁同步电机的实际性能指标。…

AtCoder Beginner Contest 280 老年人复建赛

好久没更新了&#xff0c;因为最近p事实在是有点多&#xff0c;让人心烦意乱 还是安安心心打比赛舒服 A&#xff0c;B&#xff0c;C就不讲啦 D - Factorial and Multiple 大意&#xff1a; 给定一个数字k<1e12&#xff0c;求最小的数字n满足n!%k0; 思路1&#xff1a; 不…

hadoop完全分布式环境搭建详细版

1. hadoop集群规划 1.准备3台客户机(关闭防火墙&#xff0c;静态ip&#xff0c;主机名称) 2.安装jdk 3.配置环境变量 4.安装hadoop&#xff0c;hadoop版本是3.1.3,包名为hadoop-3.1.3.tar.gz 5.配置环境变量 6.配置集群 7.单点启动 8.配置ssh 9.群起集群并测试集群 注意: NameN…

Ubuntu20.04静态路由表连通局域网各网段主机 Vmware WorkStation

文章目录示例拓扑虚拟机的三种网络模式虚拟网络编辑器的设置虚拟主机与虚拟路由设置细节Ubuntu20.04设置静态IP给R1添加双网卡给R1、R2开启转发功能配置路由表References示例拓扑 宿主机是Windows11 PC与Router均为 Ubuntu20.04系统。 虚拟机的三种网络模式 虚拟机默认是只初…

如何利用InVest模型估算区域产水量

1.什么是InVEST模型 InVEST模型&#xff08;Integrated Valuation of Ecosystem Services and Tradeoffs &#xff09;是生态系统服务评估与权衡模型的简称&#xff0c;是美国自然资本项目组开发的、用于评估生态系统服务功能量及其经济价值、支持生态系统管理和决策的一套模型…

十四、使用 Vue Router 开发单页应用(1)

本章概要 感受前端路由 HTML 使用路由模块开发使用路由 传统的 Web 应用程序不同页面间的跳转都是向服务器发起请求&#xff0c;服务器处理请求后向浏览器推送页面。 在单页应用程序中&#xff0c;不同视图&#xff08;组件的模板&#xff09;的内容都是在同一个页面中渲染&…

golang 琐碎知识

golang 琐碎知识&#xff08;持续进行&#xff09; 时间格式 time.now.Format("2006-01-02T 15:04:05")make声明切片bug Golang&#xff1a;statusList : make([]*model.StatusList, 6) 会声明一个长为6的null切片&#xff0c;使用append添加时不会将null覆盖掉去掉切…

JMeter入门教程(10) --函数助手

文章目录1.CSVRead2.Random3.RandomString4.RandomDate5.time在JMeter的选项菜单中有一个“函数助手对话框”&#xff0c;点击打开“函数助手”对话框&#xff0c;使用函数助手&#xff0c;我们可以从“选择一个功能”下拉列表中选择一个函数&#xff0c;并为其参数设定值。表格…

SQL函数之分割

数据库中有一张地区数据统计表,但是并不规则 ,记录类似于,225100:02:3:20160725是一串代码,以:分割,第1位为地区代码,第2位为分类代码,第3位为数量,第4位为日期 地区代码含义225100-上海 225200-江苏 225300-浙江 为可能有某些位不存在,缺位时计算规则如下: 1、…

Golang开发习惯:变量、常量声明使用惯例

《Go语言精进之路》第二、三章部分内容学习记录笔记。 1.基本原则 Golang开发中&#xff0c;可遵守简单且一致的命名原则&#xff0c;力求命名精简、易懂和一致。 package声明 Golang的package声明以小写形式的单个词进行命名&#xff1a; shopservice、utils、logs、tcc、l…

计算机毕业论文java毕业设计选题源代码

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 《【论文】S2SH药膳馆会员管理系统》该项目采用技术jsp、strust2、Spring、hibernate、tomcat服务器、mysql数据库 &#xff0c;项目含有源码、论…

十四、使用 Vue Router 开发单页应用(2)

本章概要 动态路由匹配 查询参数 路由匹配语法 参数的自定义正则表达式可重复参数可选参数 嵌套路由 14.2 动态路由匹配 实际项目开发时&#xff0c;经常需要把匹配某种模式的路由映射到同一个组件。例如&#xff0c;有一个 Book 组件&#xff0c;对于所有 ID 各不相同的图书…