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

在这里插入图片描述

本专栏会对爬虫进行从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开头 服务器端遇到不可预知的错误

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】Spring 整合 JUnit

JUnit 是 Java 中一个广泛使用的单元测试框架。它使用简单的注解和断言方法,使开发者能够轻松编写和运行测试用例。在使用 IDEA 创建的 Spring 项目中,JUnit 框架可以方便地进行整合。下面是整合的具体步骤。这里使用一个之前整合 MyBatis 时的 Spring 项…

MATLAB数学建模之画图汇总

MATLAB是一种强大的数学软件,广泛应用于工程计算、控制设计、信号处理等领域。在数学建模中,MATLAB的绘图功能可以帮助我们直观地展示数据和模型结果。 1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 plot函数用于绘制二维平面上的线性坐标曲线图&am…

Linux 远程连接服务

远程连接服务器简介 什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操 作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。 远程连接服务器的功…

Prometheus 采集postgresql监控数据

postgres_exporter 前言 postgres_exporter 是一个用于监控 PostgreSQL 数据库的 Prometheus 导出器。它允许你收集有关 PostgreSQL 数据库性能和状态的指标,并将这些指标暴露给 Prometheus,从而可以在 Grafana 等可视化工具中进行展示和告警。 postgres_exporter download…

windows文件下换行, linux上不换行 解决CR换行符替换为LF notepad++

html文件是用回车换行的,在windows电脑上,显示正常。 文件上传到linux服务器后,文件不换行了。只有一行。而且相关js插件也没法正常运行。 用notepad查看,显示尾部换行符,是CR,这就是原因。CR是不被识别的。…

CTF show 文件上传篇(web151-170,看这一篇就够啦)

目录 一.前言 二.文件上传(web151-170) 1.web151(前端绕过) 1.1 编写一句话木马 1.2.寻找突破点 1.3.webshell连接 1.4 利用条件 2.web152(MIME头绕过) 2.1 知识点 2.2 绕过限制 2.3 利用条件 …

UE5 像素流进行内网https证书创建

确定证书需求 内网 HTTPS 通信通常需要以下内容: 自签名证书(适用于内网环境,不需要通过公开的证书颁发机构 CA) 或者通过内部的企业 CA 签发的证书(更安全)。 生成自签名证书 使用工具(如 Ope…

Android 图形系统之七:SurfaceFlinger

一. 引言 什么是 SurfaceFlinger?SurfaceFlinger 的核心作用和地位?为什么需要了解 SurfaceFlinger? 二. SurfaceFlinger 的基本概念 Surface 和 SurfaceFlinger 的关系SurfaceFlinger 与图形渲染(OpenGL ES 和 Vulkan&#xf…

大型制造企业IT蓝图、信息化系统技术架构规划与实施路线方案

关注 获取ppt​​​​​​全文,请关注作者

基于Pyhton的人脸识别(Python 3.12+face_recognition库)

使用Python进行人脸编码和比较 简介 在这个教程中,我们将学习如何使用Python和face_recognition库来加载图像、提取人脸编码,并比较两个人脸是否相似。face_recognition库是一个强大的工具,它基于dlib的深度学习模型,可以轻松实…

基于Unity实现的目标追踪任务指示模块

一、环境布置 第一人称模式: 二、新建脚本命名为任务指示器 Arrow:箭头图像target:指示目标8/9行通过lambad表达式,方便获取它们的对应属性静态的rect对象作用是简化代码 13:判断是否存在对象,防止空引用报错14:使用…

etcd资源超额

集群内apiserver一直重启,重启kubelet服务后查看日志发现一下报错: Error from server: etcdserver: mvcc: database space exceeded 报错原因: etcd服务未设置自动压缩参数(auto-compact) etcd 默认不会自动 compa…

关于项目二次开发那点事儿

以SpirngbootVue项目为例: 目前项目整体结构: 前端编译基本操作: # 安装依赖 npm install# 在 localhost:8080 启动项目 npm run serve# 运行项目中的构建脚本 npm run build npm run build 该命令执行成功之后,前端项目的目录下…

navicat连接mysql 8.0以上版本2059错误

安装了最新版本8.0.4的mysql之后,使用navicat链接提示以下错误。原因是因为mysql8.0 之前的版本中加密规则是 mysql_native_password,而 mysql8.0 之后的版本加密规则是caching_sha2_password 处理方案 解决方案1:下载安装最新版本navicat…

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!

文章链接:https://arxiv.org/pdf/2411.18623 项目链接:https://lift3d-web.github.io/ 亮点直击 提出了Lift3D,通过系统地提升隐式和显式的3D机器人表示,提升2D基础模型,构建一个3D操作策略。 对于隐式3D机器人表示&a…

六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序

本章讲述数据结构中的六大排序算法 欢迎大佬们踊跃讨论,感谢大家支持! 我的博客主页链接 六大排序算法 一.插入排序1.1 直接插入排序1.2 希尔排序 二.选择排序2.1 单向选择排序2.2双向选择排序2.3 堆排序 三.交换排序3.1 冒泡排序3.2 快速排序3.2.1 Hoa…

小程序 - 计算器

小程序交互练习 - 计算器小程序 目录 计算器 功能描述 准备工作 创建项目 配置导航栏 创建utils目录 math.js文件内容 calc.js文件内容 页面内容 页面样式内容 页面脚本事件 功能截图 总结 计算器 在日常生活中,计算器是人们广泛使用的工具&#xff0…

Ubuntu22.04安装Steam++(Watt toolkit)

Watt toolkit这个软件可以Github加速,非常方便。但是在Linux系统不好安装和正常使用。下面就以Ubuntu22.04来安装Watt toolkit软件。 在https://steampp.net/官网下载Linux版本: 然后解压这个压缩包: 然后在解压后的文件运行.sh文件&…

[382]基于springboot的辽B代驾管理系统

毕 业 设 计(论 文) 题目:辽B代驾管理系统 摘 要 使用旧方法对辽B代驾管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在辽B代驾管理系统的管理上面可以解决许多信息管理上面的难题,比…

github仓库自动同步到gitee

Github Actions是Github推出的自动化CI/CD的功能,我们将使用Github Actions让Github仓库同步到Gitee 同步的原理是利用 SSH 公私钥配对的方式拉取 Github 仓库的代码并推送到 Gitee 仓库中,所以我们需要以下几个步骤 生成 SSH 公私钥添加公钥添加私钥配…