爬虫专栏第一篇:深入探索爬虫世界:基础原理、类型特点与规范要点全解析

在这里插入图片描述

本专栏会对爬虫进行从0开始的讲解,每一步都十分的细致,如果你感兴趣希望多多点赞收藏关注支持

简介:文章对爬虫展开多方面剖析。起始于爬虫的基本概念,即依特定规则在网络抓取信息的程序或脚本,在搜索引擎信息提取上作用显著。阐述其于大数据背景下可助力获取并处理分析数据的价值。着重说明避免违法的关键,涉及遵循网站 robots.txt 文件规定、合理控制访问频率、杜绝恶意篡改网站信息以及尊重个人隐私与知识产权等方面。详细解读通用爬虫,涵盖 URL 构成要素与搜索引擎获取新网站 URL 的途径等。同时深入介绍聚焦爬虫,包含 Chrome 浏览器开发者工具 F12 的运用、HTTP 超文本传输协议的 GET 和 POST 操作以及 HTTP 协议字段解析,如 Cookie、user-agent 等重要组成部分与常见状态码含义等,为读者清晰展现爬虫的全貌。

1爬虫的基本介绍

1.1什么是爬虫

爬虫是一种按一定规则在互联网上抓取信息的程序或脚本。他可以自动的访问互联网上的网页,搜索引擎(百度 谷歌)使用大量的爬虫提取网页的关键词,这样当用户在搜索引擎中输入关键词时,就能快速地找到相关的网页。

1.2爬虫的价值与意义

常说现在是大数据时代,这些数据如果市场上没有,或者不愿意购买,可以选择自己使用爬虫去获取需要的数据,进行处理和分析

1.3避免违法

如果不想因为爬虫触犯法律:
(第一点):它存放在网站根目录下的 robots.txt 文件中,用于告诉爬虫哪些页面可以抓取,哪些不可以。比如在下图百度的网址后+robots.txt就可以找到那些是不允许的了。
在这里插入图片描述

(第二点):控制访问频率避免对服务器带来较大负担
(第三点):不要恶意篡改网站信息,会涉及到破坏计算机信息系统罪
(第四点):尊重个人隐私,尊重知识产权

1.4通用爬虫

他是搜索引擎的重要组成部分,从互联网采集信息,为建立索引提供支持,决定了搜索殷勤的内容是否丰富,即时。

1.4.1什么是URL

URL是互联网资源的门牌号,由多个部分组成:
(第一部分–协议):比如我用一台手机,打开一个网页。我这个手机需要的是页面的信息,所以我的手机是被服务的客户叫做客户端,给予信息的是提供服务的叫做服务端或者服务器。他们要遵循一种特定的规则去实现信息的传输,常见协议有https (超文本传输安全协议)
在这里插入图片描述

http(超文本 传输协议)
在这里插入图片描述

ftp(文件传输协议)
在这里插入图片描述
(第二部分是IP地址)比如www.baidu.com就是ip地址
(第三部分是端口)一般默认http默认端口是80,会被省略。
(第四部分)path访问资源的路径
(第五部分参数)我们通过百度搜索python,观察一下地址栏的变化
在这里插入图片描述
可以看到参数wd = python说明这是搜索的参数

搜索引擎获取新网站URL的三种方式:
(第一种)新网站主动向搜索引擎提交网址
(第二种)在其他网站上设置新网站外链
(第三种)和dns解析服务商合作

1.5聚焦爬虫

他是针对于特定网站或平台进行某一类数据爬取

1.5.1 Chromne浏览器开发者工具F12

按F12或者右键检查。比如我们打开百度网站,打开开发者工具
在这里插入图片描述
刷新网站找到www.baidu.com的抓包:
在这里插入图片描述
注重强调要对: 保留日志/preserve log部分打钩,他的作用是比如我要完成一次登录,那么他可以保证登录的请求不丢失。登录完以后还可以已通过开发者工具看到自己提交的登录请求,如果不打钩,他会自动丢失。
在这里插入图片描述
那么为什么不能丢失呢?因为我们在使用爬虫的时候会遇到登录问题,我们需要抓登录需要的包,将爬虫模拟成真人登录,才能爬取我们需要的信息。

1.5.2 HTTP 超文本传输协议

在这里插入图片描述
比如手机打开一个百度浏览器他会自动输入百度的网址,通过URL地址对存储百度页面的服务器发送请求GET /POST,而服务器给予响应。
GET:比如需要一个网页页面 ,就是GET
POST:比如需要登录输入用户名密码就是POST
我们可以通过抓包看GET,打开百度首页开发者工具刷新:
在这里插入图片描述
我们可以看到一个GET请求,他的状态码是200,目前只需要知道状态码都是三位数,2开头的代表访问正常,4开头代表访问异常,比如常见的404,406。我们会单独将状态码这个知识点,目前留个印象就好。

1.5.3 HTTP协议字段解析

还是打开百度首页,打开开发者工具抓包并刷新:
在这里插入图片描述

可以看到很多信息,我把常用信息进行讲解,这三个代表着 URL地址 方法 以及 状态码。
鼠标滚轮往下滚可以看到:
在这里插入图片描述
Cookie的作用很重要,比如你在一个购物网站登录了,服务器怎么识别出来你。他检测方法之一就是判断cookie是否正确。
在这里插入图片描述
user-agent也很重要,他代表着我们是通过什么浏览器,什么系统去访问的。服务器一看到他就知道是真人访问。爬虫对于服务器来说是压力。将心比心,你们开发一个网站是不是更乐意把网站提供给真人,因为信息的传播会带来价值,给爬虫又不会给你创造价值。所以服务器可以通过多种方式判断爬虫从而降低爬虫打来的压力。作为爬虫,我们要做的就是模仿成真人的访问,把自己做的正常一点
对于相应状态码要单独讲解:
1开头 代表成功接收部分请求
2开头代表成功
3开头代表需要客户需要细化请求
4开头代表有错误 :404无法找到403拒绝访问权限不够
5开头 服务器端遇到不可预知的错误

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

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

相关文章

vue 项目实现阻止浏览器记住密码

​在各个浏览器中,登录输入密码一般都会弹出是否记住密码的功能,如果记住之后,会在各个密码框自动填充记住的密码,这无疑是一种不安全的操作,所以要实现禁用阻止浏览器记住密码的行为 查阅资料,也得到很多…

Y20030028 JAVA+SSM+MYSQL+LW+基于JAVA的考研监督互助系统的设计与实现 源代码 配置 文档

基于JAVA的考研监督互助系统 1.项目描述2. 课题开发背景及意义3.项目功能4.界面展示5.源码获取 1.项目描述 随着高等教育的普及和就业竞争的加剧,越来越多的学生选择继续深造,参加研究生入学考试。考研人数的不断增加,使得考研过程中的学习监…

【AI系统】推理流程全景

推理流程全景 本文介绍神经网络模型在部署态中的两种方式:云侧部署和边缘侧部署。其中,云侧部署适用于云服务器等具备强大计算能力和存储空间的环境,可以实现高吞吐量和集中的数据管理,但可能面临高成本、网络延迟和数据隐私等挑…

9.13[debug]

这个错误表明 Git 尝试通过 HTTPS 协议连接到 Gitee 上的仓库时,实际上却尝试连接到了本地的 127.0.0.1(即 localhost)的 7890 端口,这通常是因为 HTTP 代理配置错误或全局 Git 配置中的代理设置不正确 如果这些命令返回了代理设…

Linux-GPIO应用编程

本章介绍应用层如何控制 GPIO,譬如控制 GPIO 输出高电平、或输出低电平。 只要是用到GPIO的外设,都有可能用得到这些操作方法。 照理说,GPIO的操作应该是由驱动层去做的,使用寄存器操作或者GPIO子系统之类的框架。 但是&#xff0…

【Linux】用户操作命令

声明:以下内容均学习自《Linux就该这么学》一书 1、管理员root Linux系统的管理员之所以是root,并不是因为它的名字叫root,而是因为该用户的身份号码UID(User IDentification)的数值是0。UID相当于身份证号码&#x…

Altium Designer学习笔记 28 扇孔处理

基于Altium Designer 23学习版,四层板智能小车PCB 更多AD学习笔记:Altium Designer学习笔记 1-5 工程创建_元件库创建Altium Designer学习笔记 6-10 异性元件库创建_原理图绘制Altium Designer学习笔记 11-15 原理图的封装 编译 检查 _PCB封装库的创建Al…

XiYan-SQL:⼀种多⽣成器集成的Text-to-SQL框架

发布于:2024 年 12 月 03 日 星期二 北京 #NL2SQL #阿里巴巴 #Text-to-SQL 文提出了一种用于自然语言到 SQL 转换的多生成器集成框架 ——XiYan-SQL,旨在应对大型语言模型在 NL2SQL 任务中的挑战。该框架融合提示工程与监督微调(SFT)方法,利用 SFT 的可控性与上下文学习(…

插入算法介绍(c基础)

介绍一下希尔排序法(c基础)-CSDN博客 一、插入算法概述 定义 插入算法是一种常见的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。适用场景 插入算法适用于数据量较小…

qtcanpool 知 08:Docking

文章目录 前言口味改造后语 前言 很久以前,作者用 Qt 仿照前端 UI 设计了一个 ministack(https://gitee.com/icanpool/qtcanpool/blob/release-1.x/src/libs/qcanpool/ministack.h) 控件,这个控件可以折叠。部分用户体验后&#…

嵌入式C编程:宏定义与typedef的深入对比与应用

目录 一、宏定义(Macro Definition) 1.1. 特点与应用 1.1.1 定义常量 1.1.2 定义函数式宏 1.1.3 条件编译 1.2. 作用范围和生命周期方面 1.3. 应用注意事项 二、typedef 2.1. 特点与应用 2.1.1 简化类型声明 2.1.2 提高代码可读性 2.1.3 实现…

如何高效写论文-学习笔记【AI算法研究猿James】

视频链接:如何高效写论文_哔哩哔哩_bilibili 视频里面广告内容较多,为便于复习回顾,现对学习内容进行记录。 目录 1、写论文总体认知 1.1、写论文到底有多重要? 1.2、写论文难在哪儿? 2、从审稿人角度看论文写作 2.1、审稿人在意的是…

使用 EasyExcel 实现高效的 Excel 读写操作

在日常开发中,Excel 文件的读写操作是一个常见的需求。EasyExcel 是阿里巴巴开源的一个高性能、易用的 Excel 读写库,可以大幅提高处理 Excel 文件的效率。它通过事件驱动模型优化了大数据量 Excel 的读写性能,非常适合处理大文件或高并发场景…

电脑插入耳机和音响,只显示一个播放设备

1. 控制面板-硬件和声音-Realtek高清音频-扬声器-设备高级设置-播放设备里选择使用前部和后部输出设备同时播放两种不同的音频流 在声音设置中就可以看到耳机播放选项

代码随想录算法训练营day49|动态规划part11

最长公共子序列 这个与上篇笔记最大的不同就是子序列里的数可以不相邻,那么只需加入一个dp[i][j]的上和左的更新方向即可 class Solution { public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size()1,vector<…

JavaEE-经典多线程样例

文章目录 单例模式设计模式初步引入为何存在单例模式饿汉式单例模式饿汉式缺陷以及是否线程安全懒汉式单例模式基础懒汉式缺陷以及是否线程安全懒汉式单例模式的改进完整代码(变量volatile) 阻塞队列生产者消费者模型生产者消费者模型的案例以及优点请求与响应案例解耦合削峰填…

qt QCryptographicHash详解

1、概述 QCryptographicHash是Qt框架中提供的一个类&#xff0c;用于实现加密散列函数&#xff0c;即哈希函数。哈希函数能够将任意长度的数据转换为固定长度的哈希值&#xff0c;也称为散列值或数据指纹。这个哈希值通常用于数据的完整性校验、密码存储等场景。QCryptographi…

【数据结构】动态规划-基础篇

针对动态规划问题&#xff0c;我总结了以下5步&#xff1a; 确定dp数组以及下标的含义&#xff1b; 递推公式&#xff1b; dp数组如何初始化&#xff1b; 遍历顺序&#xff1b; 打印dp数组&#xff08;用来debug&#xff09;&#xff1b; 以上5步适用于任何动态规划问题&#x…

字符串函数和内存函数

字符串函数 1、strlcpy 【字符串拷贝】 &#xff08;将原字符串中的字符拷贝到目标字符数组中&#xff0c;包括终止符号\0&#xff0c;并在这里停止&#xff1b;为了避免越界&#xff0c;目标字符串数组应该足够大去接收&#xff09;&#x1f446; &#xff08;返回值是 dest…

Electron-vue 框架升级 Babel7 并支持electron-preload webapck 4 打包过程记录

前言 我这边一直用的electron-vue框架是基于electron 21版本的&#xff0c;electron 29版本追加了很多新功能&#xff0c;但是这些新功能对开发者不友好&#xff0c;对electron构建出来的软件&#xff0c;使用者更安全&#xff0c;所以&#xff0c;我暂时不想研究electron 29版…