网络爬虫相关概念

news2024/11/20 20:37:44

目录

1、什么是爬虫?

2、网络爬虫步骤

3、爬虫核心

4、爬虫的用途

5、爬虫分类

6、反爬手段


1、什么是爬虫?

如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 。

解释1:通过一个程序,根据Url(http://www.taobao.com)进行爬取网页,获取有用信息。

解释2:使用程序模拟浏览器,去向服务器发送请求,获取响应信息。

2、网络爬虫步骤

网络爬虫是一种自动化程序,用于浏览互联网并收集相关数据。它通过发送HTTP请求,下载网页内容,然后解析和提取有用的信息。网络爬虫的主要目的是获取特定网站或多个网站的数据,并将其用于分析、存储或其他应用程序。

网络爬虫的工作原理通常包括以下几个步骤:

  1. 确定起始点:爬虫需要指定一个或多个起始URL作为开始点。这些URL可以是特定的网页、网站的首页或其他包含感兴趣信息的页面。
  2. 发送请求:爬虫使用HTTP协议向目标网站发送请求,获取网页的HTML源代码。请求可以包含一些额外的信息,如用户代理、Cookie等。
  3. 解析网页:爬虫使用HTML解析器解析网页的结构,识别出网页中的各种元素,如链接、文本、图像等。
  4. 提取数据:爬虫从解析后的网页中提取出感兴趣的数据。这可以通过正则表达式、XPath、CSS选择器等方式进行。
  5. 遍历链接:爬虫会从当前页面中提取出的链接中找到新的URL,并将其添加到待访问的URL队列中。这样可以实现对其他页面的访问和数据提取。
  6. 存储数据:爬虫将提取到的数据进行清洗、处理和存储,以备后续使用。数据可以保存到文件、数据库或其他存储介质中。
  7. 反爬处理:为了防止被网站封禁或限制访问,爬虫需要处理反爬虫机制,如限制访问频率、验证码识别等。

网络爬虫在实际应用中有着广泛的用途,例如搜索引擎的索引建立、数据挖掘、舆情监测、价格比较、信息聚合等。但要注意,爬虫的使用需要遵守法律法规和网站的使用条款,尊重网站的隐私和访问限制。

3、爬虫核心

1.爬取网页:爬取整个网页 包含了网页中所有得内容

2.解析数据:将网页中你得到的数据 进行解析

3.难点:爬虫和反爬虫之间的博弈

在后面的文章中我们都会一一去讲解。

4、爬虫的用途

  • 数据分析/人工数据集
  • 社交软件冷启动(交友平台爬取用户数据然后进行自己平台的机器式注册)
  • 舆情监控
  • 竞争对手监控(电商平台之间的竞争)

 为什么出行是爬虫流量目标第一呢?

我们平时都使用过抢票软件(智行,飞猪等等)去进行买票,但是国内只有12306一家卖票,那他们的票是哪里来的呢?

他们也是从12306中抢票,通过爬虫进行高频次的访问去进行抢票。

其次是社交类,而其中微博又是最大的灾区,微博是其他聊天软件第一目标,为什么?

因为我要把爬取的数据当作自己软件的一些假用户,然后去进行和你聊天,去吸引到你的注意,让你去想进行聊天。

5、爬虫分类

通用爬虫:

        实例

                百度、360、google、sougou等搜索引擎‐‐‐伯乐在线

        功能

                访问网页‐>抓取数据‐>数据存储‐>数据处理‐>提供检索服务

        robots协议

                一个约定俗成的协议,添加robots.txt文件,来说明本网站哪些内容不可以被抓取,起不到限制作用

                自己写的爬虫无需遵守

        网站排名(SEO)

                        1. 根据pagerank算法值进行排名(参考个网站流量、点击率等指标) 2. 百度竞价排名

        缺点

                        1. 抓取的数据大多是无用的 2.不能根据用户的需求来精准获取数据

因此上面的通用爬虫不是我们学习的目标,我们的学习目标是下面的聚焦爬虫。 

 聚焦爬虫

        功能

                根据需求,实现爬虫程序,抓取需要的数据

        设计思路

                1.确定要爬取的url

                        如何获取Url

                2.模拟浏览器通过http协议访问url,获取服务器返回的html代码(所有的数据)

                        如何访问

                3.解析html字符串(根据一定规则提取需要的数据)

6、反爬手段

为了保护网站的数据和资源,防止被恶意爬虫滥用或过度访问,网站常常采用一些反爬手段。以下是一些常见的反爬手段:

  1. 验证码:网站可能要求用户输入验证码,以确认其为真实用户而不是爬虫。验证码可以是图形验证码、短信验证码等形式。
  2. IP限制:网站可以根据IP地址限制访问频率或连接数,当同一个IP地址请求过于频繁时,可能会被暂时或永久禁止访问。
  3. User-Agent检测:网站可以通过检查请求中的User-Agent字段来判断请求是否来自爬虫。如果User-Agent与正常浏览器的标识不匹配,可能会被拒绝访问。
  4. Cookie验证:网站可能使用Cookie来验证用户身份,如果请求中没有有效的Cookie或Cookie不符合预期,可能会被拒绝访问。
  5. 动态页面:网站可以使用动态生成的页面内容, ers实现爬虫难以解析和提取数据。
  6. 页面渲染:有些网站使用JavaScript动态生成页面内容,爬虫需要使用浏览器引擎来解析和执行JavaScript代码,以获取完整的页面数据。
  7. 请求频率限制:网站可能设置了请求频率限制,当请求频率超过一定阈值时,可能会被判定为爬虫并拒绝访问。

为了规避这些反爬手段,爬虫开发者可以采取一些策略,如设置合理的请求频率、使用代理IP、处理验证码、处理动态页面等。然而,请注意,遵守网站的规则和使用条款是非常重要的,爬虫应该尊重网站的隐私和访问限制,避免对网站造成过度负荷或滥用。

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

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

相关文章

给定一个链表,判断链表中是否有环

【思路】 快慢指针,即慢指针一次走一步,快指针一次走两步,两个指针从链表其实位置开始运行, **如果链表带环则一定会在环中相遇,**否则快指针率先走到链表的末尾。比如:陪女朋友到操作跑步减肥。 bool hasC…

测试域: 流量回放-工具篇jvm-sandbox,jvm-sandbox-repeater,gs-rest-service

JVM-Sandbox Jvm-Sandbox-Repeater架构_小小平不平凡的博客-CSDN博客 https://www.cnblogs.com/hong-fithing/p/16222644.html 流量回放框架jvm-sandbox-repeater的实践_做人,最重要的就是开心嘛的博客-CSDN博客 [jvm-sandbox-repeater 学习笔记][入门使用篇] 2…

Unity丨自动巡航丨自动寻路丨NPC丨

文章目录 概要功能展示技术细节小结 概要 提示:这里可以添加技术概要 本文功能是制作一个简单的自动巡逻的NPC,随机自动寻路。 功能展示 技术细节 using UnityEngine;public class NPCController : MonoBehaviour {public float moveSpeed 5.0f; // …

成都瀚网科技:抖音提供差异化​​亮点!

在抖音平台上,精选联盟是一个专门为优质品牌提供展示和推广机会的合作项目。对于斗店主来说,如何成功对接精选联盟并实现上市是一个重要目标。在这篇文章中,我们将分享一些豆点与精选联盟对接的方法,并提供上币指南。 1、提升店铺…

2023最新如何轻松升级、安装和试用Navicat Premium 16.2.10 教程详解

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

六、决策树算法(DT,DecisionTreeClassifier)(有监督学习)

决策树(DT)是一种用于分类和回归的非参数监督学习方法。其目标是创建一个模型,通过学习从数据特征中推断出的简单决策规则来预测目标变量的值。一棵树可以看作是一个片断常数近似值。 一、算法思路 具体可参考博文:七、决策树算…

linux升级glibc-2.28

1.准备工作 1.1升级gcc到gcc8 # 安装devtoolset-8-gcc yum install centos-release-scl yum install devtoolset-8 scl enable devtoolset-8 -- bash# 启用工具 source /opt/rh/devtoolset-8/enable # 安装GCC-8 yum install -y devtoolset-8-gcc devtoolset-8-gcc-c devtoolse…

【C语言】数组和指针刷题练习

指针和数组我们已经学习的差不多了,今天就为大家分享一些指针和数组的常见练习题,还包含许多经典面试题哦! 一、求数组长度和大小 普通一维数组 int main() {//一维数组int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));//整个数组…

[plugin:vite:css] [sass] Undefined mixin.

前言: vite vue3 TypeScript环境 scss报错: [plugin:vite:css] [sass] Undefined mixin. 解决方案: 在vite.config.ts文件添加配置 css: {preprocessorOptions: {// 导入scss预编译程序scss: {additionalData: use "/resources/_ha…

如何使用远程桌面软件进行远程工作

远程工作提供了更大的灵活性和自由度,使得可以在任何地点工作。而要实现高效的远程工作,一个关键的工具就是远程桌面软件。本文将详细介绍如何使用远程桌面软件进行远程工作,以帮助读者提高工作效率。 一、了解远程桌面软件的基本原理 远程桌…

带你一步实现《栈》(括号匹配问题)

栈的结构及概念 栈是一种特殊的线性表,只允许在固定的一端插入或删除数据,进行插入和删除的一端被称为栈顶,另一端称为栈底。栈中的数据遵循后进先出原则 LIFO(LAST IN FIRST OUT) 俗称栈的插入过程叫做压栈,入栈&…

Batbot智慧能源管理云平台:拥抱数字化,提高能源效率!

我们拥抱数字化,以帮助提高能源效率。 政府已采取措施增强国家的环境信誉,旨在实现雄心勃勃的法定目标,即到2035年,将国家温室气体排放量减少78%(与1990年相比)。 拥抱数字化,提高能源效率&a…

HTTP 协商缓存 Last-Modified,If-Modified-Since

浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone header加上Last-Modified属性(表示这个资源在服务器上的最后修改时间): ----------------------------------------------------------------…

ThinkPHP5,使用unionAll取出两个毫无相关字段表的数据且分页

一:首先来了解一下 union 和 unionAll 1:取结果的并集,是否去重 union:对两个结果集进行并集操作,不包括重复行,相当于distinct,同时进行默认规则的排序; unionAll:对两…

JVM面试题-JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解

对象 内存分配的两种方式 指针碰撞 适用场合:堆内存规整(即没有内存碎片)的情况下。 原理:用过的内存全部整合到一边,没有用过的内存放在另一边,中间有一个分界指针,只需要向着没用过的内存…

【QT】QRadioButton的使用(17)

QRadioButton这个控件在实际项目中多用于多个QRadioButton控件选择其中一个这样的方式去执行,那么,今天这节就通过几个简单的例子来好好了解下QRadioButton的一个使用。 一.环境配置 1.python 3.7.8 可直接进入官网下载安装:Download Pyt…

PIL或Pillow学习2

接着学习下Pillow常用方法: PIL_test1.py : 9, Pillow图像降噪处理由于成像设备、传输媒介等因素的影响,图像总会或多或少的存在一些不必要的干扰信息,我们将这些干扰信息统称为“噪声”, 比如数字图像中常见的“椒盐噪声”&…

聊一聊Twitter的雪花算法

什么是Twitter的雪花算法方法? 这是一种在分布式系统中生成唯一ID的解决方案。Twitter在推文、私信、列表等方面使用这种方法。 •ID是唯一且可排序的•ID包含时间信息(按日期排序)•ID适用于64位无符号整数•仅包含数字值 符号位&#xff08…

芋道商城,基于 Vue + Uniapp 实现,支持分销、拼团、砍价、秒杀、优惠券、积分、会员等级、小程序直播、页面 DIY 等功能

商城简介 芋道商城,基于 芋道开发平台 构建,以开发者为中心,打造中国第一流的 Java 开源商城系统,全部开源,个人与企业可 100% 免费使用。 有任何问题,或者想要的功能,可以在 Issues 中提给艿艿…

【从0学习Solidity】 10. 控制流,用solidity实现插入排序

【从0学习Solidity】10. 控制流,用solidity实现插入排序 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关…