【爬虫基础】第二部分 爬虫基础理论 P1/3

 上节内容回顾:【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客

                          【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客

                          【爬虫基础】第一部分 网络通讯-编程 P3/3-CSDN博客   

爬虫相关文档,希望互相学习,共同进步

风123456789~-CSDN博客


前言 

1.知识点碎片化:每个网站实现的技术相似但是有区别,要求我们根据不同的网站使用不同的应对手段。主要是常用的一些网站爬取技术。

2.学习难度:入门比web简单,但后期难度要比web难,在于爬虫工程师与网站开发及运维人员的对抗。比如你写了爬虫但是被网站运维人员发现后添加反爬,那么就要解决反爬。即平台更新换代,爬虫策略需要实时更新。

3.学习特点:以摸个网站爬虫为讲解对象,即一个技术点的案例。

4.后续发展:要求掌握的东西多,工作中根据工作需要涉及到更多没有接触的知识。

5.法律层面:爬虫相关工作属于灰色地带,目前国内现行法律对于爬虫相关评判还没有明确制度。

6.建议:好记性不如烂笔头,建议多找网站进行爬取联系,同时做好笔记。

1.概述

爬虫通常会遵循一定的规则和算法,以确保能够高效地遍历互联网并收集到所需的数据。

 本节章节:
    第一节  爬虫理论原理 (本文)
    第二节  http协议
    第三节  chrome浏览器抓包说明

2.爬虫理论原理

   知识点:
    1.爬虫的概念
    2.爬虫的作用
    3.爬虫的分类
    4.爬虫的流程

2.1 爬虫的概念

    爬虫就是自动抓取互联网信息的程序

    ‌爬虫(Web Crawler)是一种按照一定规则从互联网上抓取信息的程序。‌它与用户正常访问信息的区别在于,用户是缓慢、少量地获取信息,而爬虫则是大量地获取信息。爬虫通过模拟浏览器请求网站的行为,获取网页的HTML代码、JSON数据或二进制数据(如图片、视频、音频等),并将其存储或进行进一步处理。‌

    再通俗讲,如果说互联网是一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序。从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

2.2 爬虫的作用

为什么要使用爬虫?

      大数据时代,要进行数据分析,首先要有数据源,而学习爬虫,可以让我们获取更多的数据源,并且这些数据源可以按我们的目的进行采集,去掉很多无关数据。

      在进行大数据分析或者进行数据挖掘的时候,数据源可以从某些提供数据统计的网站获得,也可以从某些文献或内部资料中获得,但是这些获得数据的方式,有时很难满足我们对数据的需求,而手动从互联网中去寻找这些数据,则耗费的精力过大。

      此时就可以利用爬虫技术,自动地从互联网中获取我们感兴趣的数据内容,并将这些数据内容爬取回来,作为我们的数据源,从而进行更深层次的数据分析,并获得更多有价值的信息。

 爬虫的作用:

    1)数据采集

              爬虫可以快速收集大量数据,常用于市场调研、竞争分析等。

    2)数据统计
              通过分析大量数据,可以发现一些人为难以察觉的模式和趋势。
    3)数据的功能性集成(如:刷流量与秒杀活动

              爬虫可以模拟大量用户访问,增加网站的访问量,甚至参与秒杀活动。

2.3 爬虫的分类

爬虫的类型

  1. 通用爬虫:用于收集互联网上的大量数据,例如搜索引擎的爬虫。它们遍历整个网页链接,并按照规则提取相关信息。
  2. 聚焦爬虫‌:针对特定主题或领域进行数据收集。它们只访问和提取与预设主题相关的网页数据。对某个单一的平台,单独开发的爬虫   采集抖音的爬虫程序
  3. 增量式爬虫‌:主要用于定期更新数据,而不是每次都全面爬取。它们记录上一次爬取的时间戳,只访问和提取自上次爬取以来更新过的网页数据。
  4. 深度爬虫‌:专门用于访问和收集隐藏在互联网深层网页中的信息。这些网页通常不被搜索引擎索引,需要特殊的技术和算法才能访问和提取数据。
  5. 垂直爬虫‌:专注于特定网站或特定类型网页的数据收集,例如新闻爬虫、电商产品爬虫等。
  6. 社交媒体爬虫‌:用于在各种社交媒体平台上抓取用户的信息、帖子、评论等数据,常用于情感分析、舆情监测等应用。

 1)通用爬虫

类似百度、谷歌这样的爬虫,抓取对象是整个互联网,对于网页没有固定的抽取规则。 对于所有网页都是一套通用的处理方法。

       需要采集网站(平台):特别多
       收集的信息非常有限
       收集网页的标题
       采集算法

2)垂直爬虫

这类爬虫主要针对一些特定对象、网站,有一台指定的爬取路径、数据抽取规则。

      比如今日头条,它的目标网站就是所有的新闻类网站。

      比如Etao比价、网易的慧慧购物助手,他的目标网站就是 淘宝、京东等等电商网站。 

通用爬虫和垂直爬虫显著的区别:

     A.抓取范围,通用爬虫的抓取范围要比垂直爬虫大得多,一个是整个互联网,一个是指定的网站。

     B.爬取路线,一个通用爬虫要不按照深度爬取、要不是按广度爬取。 而垂直爬虫则可能是按照指定路线爬取。

     C.数据处理,通用爬虫一般就是分词、索引到数据库。 而垂直爬虫则通过特定的规则来抽取更加精细的数据 。

2.4 爬虫的流程原理

用户获取网络数据的方式:

方式1:浏览器提交请求--->下载网页代码--->解析成页面

方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式2。

 爬虫的流程步骤: 1.准备数据(网站地址)
 2.发送请求,获取响应
 3.解析响应,数据提取
 4.保存数据

1)准备数据(网站地址)

2)发起请求,获取响应

爬虫首先会向目标网站发送HTTP请求,以获取网页的HTML源码。

Request包含:请求头、请求体等 

Request模块缺陷:不能执行JS 和CSS 代码

如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

3)解析响应,数据提取

获取到HTML源码后,爬虫会使用解析器对网页进行解析,提取出所需的信息。

解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

解析json数据:json模块

解析二进制数据:以wb的方式写入文件

4)保存数据

提取出的信息会被存储到本地文件、数据库或其他存储介质中,以便后续的分析和处理

数据库([MySQL],Mongdb、Redis)

文件

 

 

注意:法律和道德问题

在使用爬虫时,需要遵守一定的法律和道德准则,尊重网站的隐私政策和使用条款,确保合法和负责任地使用爬虫技术。

今天先到这里吧~~

预知后事如何,且听下回分解~ ok


项目管理--相关知识   

项目管理-项目绩效域1/2-CSDN博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客

项目管理-项目绩效域2/2_绩效域 团不策划-CSDN博客

高项-案例分析万能答案(作业分享)-CSDN博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客

项目管理-配置管理与变更-CSDN博客

项目管理-项目管理科学基础-CSDN博客

项目管理-高级项目管理-CSDN博客

项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客


Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客

oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-CSDN博客

EXP-00091: Exporting questionable statistics.解决方案-CSDN博客

Oracle 更换监听端口-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nss刷题5(misc)

[HUBUCTF 2022 新生赛]最简单的misc 打开后是一张图片,没有其他东西,分离不出来,看看lsb,红绿蓝都是0,看到头是png,重新保存为png,得到一张二维码 扫码得到flag [羊城杯 2021]签到题 是个动图…

清华大学DeepSeek文档下载,清华大学deepseek下载(完成版下载)

文章目录 前言一、清华大学DeepSeek使用手册下载二、清华大学DeepSeek使用手册思维导图 前言 这是一篇关于清华大学deepseek使用手册pdf的介绍性文章,主要介绍了DeepSeek的定义、功能、使用方法以及如何通过提示语设计优化AI性能。以下是对这些核心内容的简要概述&…

强化学习演进:GRPO 从何而来

强化学习(Reinforcement Learning, RL)是机器学习的一个分支,其核心是让智能体(Agent)通过与环境(Environment)的交互,学习如何采取最优行动(Action)以最大化…

树和二叉树

文章目录 树和二叉树1.树的概念1.1特点1.2基本概念 2.二叉树2.1二叉树的定义2.2特殊的树2.3 二叉树的性质2.4二叉树的存储 二叉树的遍历 树和二叉树 1.树的概念 树是一种非线性的数据结构,它是由n个有限结点组成一个有具体层次关系的集合 1.1特点 没有前驱结点的…

ubuntu离线安装Ollama并部署Llama3.1 70B INT4

文章目录 1.下载Ollama2. 下载安装Ollama的安装命令文件install.sh3.安装并验证Ollama4.下载所需要的大模型文件4.1 加载.GGUF文件(推荐、更容易)4.2 加载.Safetensors文件(不建议使用) 5.配置大模型文件 参考: 1、 如…

15.代码随想录算法训练营第十五天|(递归)110. 平衡二叉树,257. 二叉树的所有路径*,404. 左叶子之和,222.完全二叉树的节点个数[打卡自用]

15.代码随想录算法训练营第十五天|(递归)110. 平衡二叉树,257. 二叉树的所有路径*,404. 左叶子之和,222.完全二叉树的节点个数 给定一个二叉树,判断它是否是 平衡二叉树 示例 1: 输入&#xf…

GateWay

文章目录 创建网关配置路由规则工作原理 断言过滤器默认filter全局跨域 左边的是响应式网关,右边是传统网关(Servlet年代) 推荐左边的 需求 创建网关 在服务模块外 新建一个gateway模块 导入依赖,nacos和gateway和负载均衡 配置一下 这里网关默认占80…

十一、大数据治理平台总体功能架构

大数据治理平台的功能架构图中心主题:数据治理 核心重点是建立健全大数据资产管理框架,确保数据质量、安全性、可访问性和合规性。 大数据治理平台总体功能架构图 关键功能领域 1.数据资产平台(左侧) 此部分主要关注数据资产本身…

网络安全 机器学习算法 计算机网络安全机制

(一)网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型: 自主访问控制强制访问控制 访问控制措施: 入…

PDF扫描档智能方向识别:多模型投票机制的实践测试 救活古典书籍

2025-02-22 20:10物联全栈123 尊敬的诸位!我是一名物联网工程师。关注我,持续分享最新物联网与AI资讯和开发实战。期望与您携手探寻物联网与 AI 的无尽可能 RAG知识库搭建的过程中,扫描档pdf的支持和准确率一直是个大家都不愿主动提起的事情…

初会学习记录

【25初级会计《实务》】第一章:权责发生制举例_哔哩哔哩_bilibili 务实: 第一章 (1)会计概念,职能和目标: 2025年2月25日: (2)会计假设: 2025年2月26日: (3)会计核算基础: 202…

【FL0091】基于SSM和微信小程序的社区二手物品交易小程序

🧑‍💻博主介绍🧑‍💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…

【DDD系列-10】一页纸回顾DDD

1. DDD是什么 DDD: 是 Domain-Driven Design 的缩写,是 Eric Evans (埃里克•埃文斯)于 2004 年提出的一种软件设计方法和理念。其主要的思想是,利用确定的业务模型来指导业务与应用的设计和实现。主张开发人员与业务人员持续地沟通和模型的…

【视频2 - 4】初识操作系统,Linux,虚拟机

📝前言说明: ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,主要跟随B站博主灵茶山的视频进行学习,专栏中的每一篇文章对应B站博主灵茶山的一个视频 ●题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。…

逆向pyinstaller打包的exe软件,获取python源码(5)

在ailx10:逆向pyinstaller打包的exe软件,获取python源码(2)中,我们已经逆向出了主程序,但是import导入的py文件并没有被逆向出来,今天在知乎网友给的提醒下,说是在 PYZ-00.pyz_extracted 文件夹中&#xff…

快速理解Raft分布式共识算法

目录 拜占庭将军问题 Raft算法是干什么的? 一、领导选举(选老板) 二、日志复制(发通知) 三、安全性(防篡改) 🌰 举个真实例子 ✔️ Raft的优势 基础 状态机 节点类型 任期…

mmdetection框架下使用yolov3训练Seaships数据集

之前复现的yolov3算法采用的是传统的coco数据集,这里我需要在新的数据集上跑,也就是船舶检测方向的SeaShips数据集,这里给出教程。 Seaships论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber8438999 一、…

方法的有关知识(含递归)

方法使用 方法就是一个 代码片段 . 类似于 C 语言中的 " 函数 " 。 方法(代码片段)定义: public class Method{ // 方法的定义public static int add(int x, int y) {return x y;} }修饰符(public static) 返回值类型 方法名称([参数类型 形参]){ 方法体代码;…

公链开发与公链生态开发:构建未来区块链世界的基石

在区块链技术日新月异的今天,公链(Public Blockchain)作为去中心化网络的核心,不仅为数字资产交易提供了坚实的基础,更推动了智能合约、去中心化应用(DApps)等生态系统的蓬勃发展。公链开发与公…

python+django+transformers模型:实现商品推荐功能(集成nacos配置,数据端mongo)

一、环境安装准备 #创建 虚拟运行环境python -m venv myicrplatenv#刷新source myicrplatenv/bin/activate#python Django 集成nacospip install nacos-sdk-python#安装 Djangopip3 install Django5.1#安装 pymysql settings.py 里面需要 # 强制用pymysql替代默认的MySQLdb pym…