Python3网络爬虫开发--爬虫基础

news2025/4/22 21:18:31

网络爬虫基础

1.1 HTTP基本原理

1.1.1 URI和URL

URI即统一资源标志符,URL即统一资源定位符。
有这样一个链接,http://test.com/test.txt,在这个链接中,包含了访问协议https访问目录(即根目录)资源名称(test.txt)。通过这样的链接,可以在互联网上找到这个资源,这就是URI/URL
URL是URI的子集,每个URL都是URI,但在URI中还包含另一个子类URN,即统一资源名称,可以唯一标识这本书,但是没有指定到哪里定位这本书。
在当今网络中,很少使用URN,一般来说URI就是URL。

1.1.2 超文本

超文本就是网页的HTML源代码。
在浏览器中任意打开一个页面,右击选择检查,点击Elements就可以看到网页的源代码,里面包含了各种标签,网站正是解析了这些代码才形成了网页,这些代码就是超文本。

1.1.3 HTTP和HTTPS

在URLhttp://test.com/test.txt中,开头通常都是http或者https这就是访问资源需要的协议类型。
HTTP,中文名为超文本传输协议,用于从网络传输超文本数据道本地浏览器,保证高效而准确的传送超文本文档。
HTTPS,中文名为超文本传输安全协议,是HTTP的安全版,即HTTP下加入SSL层,简称HTTPS。因此,它传输的内容都是经过SSL加密的,它的主要作用是:

  • 建立一个信息安全通道来保证数据传输安全。
  • 确认网站的真实性。使用HTTPS的网站,都可以通过点击浏览器地址栏的锁头标志查看网站的真实信息。

1.1.4 HTTP请求过程

当我们在浏览器地址栏中输入了一个URL,回车之后,浏览器进行加载,就可以看到页面内容。
在这个过程中,就是我们的浏览器向网站服务器发送了一个请求,网站解析后,返回给浏览器一个回应,回应中包含了页面的源代码等,浏览器解析之后,就呈现出了网页。

1.1.5 请求

请求,由客户端向服务端发出,包括四部分内容:

  • 请求方法
  • 请求网站
  • 请求头
  • 请求体
1.请求方法

常见的请求方法有两种:GET和POST。
GET请求:在浏览器中输入URL并回车,这就是一个GET请求,请求的参数直接包含在URL中。
POST请求:在表单提交时发生,例如在登陆时,填写账号密码,点击登陆,通常就会发起一个POST请求,请求的数据通常一表单的形式传输。
GET和POST有如下区别:

  • GET请求的参数通常包含在URL中,数据可以在URL中看到;post请求的URL不包含数据,数据以表单形式传输,包含在请求体中。
  • GET请求提交的数据最多只有1024字节;POST在数据量上没有限制。
    此外还有其他请求方法:
    GET 请求页面,并返回页面内容。
    HEAD 类似与GET请求,返回的相应中不含具体内容,用于获取报头。
    POST 大多数用于提交表单或者上传文件,数据包含在请求体中。
    PUT 从客户端向服务器传送的数据取代指定文档中的内容。
    DELETE 请求服务器删除指定页面。
    CONNECT 把服务器当跳板,让服务器代替客户端访问其他网页。
    OPTIONS 允许客户端查看服务器的性能。
    TRACE 回显服务器收到的请求,主要用于测试或者诊断。
2. 请求的网址

即是统一资源定位符URL。

3.请求头

用来说明服务器要使用的附加信息。
Accept:请求报头域,用于指定客户端可接受哪些信息。
Accept-Language:指定客户端可接受的语言类型。
Accept-Encoding:指定客户端可接受的内容编码。
Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器货网关的位置。
Cookie:也常用Cookies。这是网站为辨别用户而存储在用户本地的数据,主要功能为维持当前访问对话,登陆之后,服务器对应信息就会存储在Cookies中,每当浏览器向服务器发出请求时,就会在请求头中加入Cookies,服务器以此辨识用户身份,并且识别状态为登陆状态,返回登陆后的结果。
Referer:标识这个请求从哪个页面发出。
User-Agent:一个特殊的字符串头,使服务器识别用户的操作系统及版本,浏览器及版本等信息。制作爬虫时使用此信息伪装成浏览器。
Content-Type:及互联网媒体类型,在HTTP协议消息头中用来表示具体请求中的媒体信息类型。

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

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

相关文章

网络开发基础(游戏方向)之 概念名词

前言 1、一款网络游戏分为客户端和服务端两个部分,客户端程序运行在用户的电脑或手机上,服务端程序运行在游戏运营商的服务器上。 2、客户端和服务端之间,服务端和服务端之间一般都是使用TCP网络通信。客户端和客户端之间通过服务端的消息转…

【源码】【Java并发】【AQS】从ReentrantLock、Semaphore、CutDownLunch、CyclicBarrier看AQS源码

👋hi,我不是一名外包公司的员工,也不会偷吃茶水间的零食,我的梦想是能写高端CRUD 🔥 2025本人正在沉淀中… 博客更新速度 👍 欢迎点赞、收藏、关注,跟上我的更新节奏 📚欢迎订阅专栏…

k8s介绍与实践

第一节 理论 基础介绍,部署实践,操作实践,点击这里学习 第二节 dashboard操作 查看安装的dashboard服务信息 kubectl get pod,svc -n kubernetes-dashboard 网页登录地址:https://server_ip:30976/#/login 创建token kube…

KRaft面试思路引导

Kafka实在2.8之后就用KRaft进行集群管理了 Conroller负责选举Leader,同时Controller管理集群元数据状态信息,并将元数据信息同步给各个分区的Leader 和Zookeeper管理一样,会选出一个Broker作为Controller去管理整个集群,但是元数…

FreeRTOS菜鸟入门(六)·移植FreeRTOS到STM32

目录 1. 获取裸机工程模版 2. 下载 FreeRTOS V9.0.0 源码 3. FreeRTOS文件夹内容简介 3.1 FreeRTOS文件夹 3.1.1 Demo文件夹 3.1.2 License 文件夹 3.1.3 Source 文件夹 3.2 FreeRTOS-Plus 文件夹 4. 往裸机工程添加 FreeRTOS 源码 5. 拷贝 FreeRTOSConfig…

14.第二阶段x64游戏实战-分析人物的名字

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:13.第二阶段x64游戏实战-分析人物等级和升级经验 名字(中文英文符号…

【CS*N是狗】亲测可用!!WIN11上禁用Chrome自动更新IDM插件

现象:每次打开chrome后IDM会弹出提示插件版本不一致。经过排查后发现是chrome把IDM插件给更新了,导致IDM提示版本不匹配。经过摸索后,得到了可行的方案。 第一步,打开Chrome,把IDM插件卸载掉,然后重新安装I…

漫游git rebase + 浅谈git checkout和git branch -f的分支命令

今天学了两个命令非常有意思:一个是git checkout,一个是git branch -f。我们可以认为在提交树上,任何一个节点代表着一次提交。并且,git commit将会在 H E A D HEAD HEAD指针指向的节点上进行进一步提交。将每一个分支名视为标记当…

深入理解 React 组件的生命周期:从创建到销毁的全过程

React 作为当今最流行的前端框架之一,其组件生命周期是每个 React 开发者必须掌握的核心概念。本文将全面剖析 React 组件的生命周期,包括类组件的各个生命周期方法和函数组件如何使用 Hooks 模拟生命周期行为,帮助开发者编写更高效、更健壮的…

OpenCV 图形API(44)颜色空间转换-----将图像从 BGR 色彩空间转换为 RGB 色彩空间函数BGR2RGB()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将图像从BGR色彩空间转换为RGB色彩空间。 该函数将输入图像从BGR色彩空间转换为RGB。B、G和R通道值的常规范围是0到255。 输出图像是8位无符号3通…

配置nginx服务,通过多ip区分多网站

首先关闭防火墙,setenforce 0 关过了,不截图了 多IP,首先配置多个IP地址 可以在vm增加虚拟网卡,也可以在同一网卡配置多个IP,我用第一种 记得点确定 查看新的虚拟网卡IP 没有IP,配置一个 安装nginx 写配置 server{listen 192.168.214.130:80;root /www/ip/130; # 资源根目…

[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化)

[k8s实战]Containerd 1.7.2 离线安装与配置全指南(生产级优化) 摘要:本文详细讲解在无外网环境下部署 Containerd 1.7.2 容器运行时的完整流程,涵盖二进制包安装、私有镜像仓库配置、Systemd服务集成等关键步骤,并提供…

解决Windows安全中心显示空白页面

1、电脑重装系统后,发现原本一些软件打不开了,电脑莫名认为有病毒,自动删除插件。附图。 2、第一反应是电脑防火墙的原因,默认威胁防护识别到了病毒软件,自动删除。在开始屏幕搜Windows安全中心,打开之后发…

【MQ篇】初识MQ!

目录 一、什么是MQ?简单来说就是个“快递中转站” 📦二、为什么要用MQ?用了它,好处多多!🤩三、MQ的应用场景:各行各业都能用!🌍四、MQ的优缺点:硬币的两面&am…

2、SpringAI接入ChatGPT与微服务整合

2、SpringAI接入ChatGPT与微服务整合 小薛博客AI 大模型资料 1、SpringAI简介 https://spring.io/projects/spring-ai Spring AI是一个人工智能工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于人工智能领域&#…

榕壹云预约咨询系统:基于ThinkPHP+MySQL+UniApp打造的灵活预约小程序解决方案

数字化咨询场景的痛点与解决方案 在心理咨询、医疗问诊、法律咨询等需要预约服务的场景中,传统线下预约存在效率低、管理复杂、资源分配不均等问题。榕壹云预约咨询系统基于ThinkPHPMySQLUniApp技术栈开发,为咨询类行业提供了一套高效、安全、可扩展的数…

opencv 图像矫正的原理

图像矫正的原理是透视变换,下面来介绍一下透视变换的概念。 听名字有点熟,我们在图像旋转里接触过仿射变换,知道仿射变换是把一个二维坐标系转换到另一个二维坐标系的过程,转换过程坐标点的相对位置和属性不发生变换,…

计算机前沿技术课程论文 K-means算法在图像处理的应用

K-means算法在图像处理的应用 这是本人在计算机前沿技术课程中的课程论文文章,为了方便大家参考学习,我把完整的论文word文档发到了我的资源里,有需要的可以自取。 点击完整资源链接 目录 K-means算法在图像处理的应用摘要:引言1…

WSL2-Ubuntu22.04安装URSim5.21.3

WSL2-Ubuntu22.04安装URSim5.21.3 准备安装启动 准备 名称版本WSL2Ubuntu22.04URSim5.21.3VcXsrvNaN WSL2安装与可视化请见这篇:WSL2-Ubuntu22.04-配置。 安装 我们是wsl2-ubuntu22.04,所以安装Linux版本的URSim,下载之前需要注册一下,即…

blender 录课键位显示插件(图文傻瓜式安装)

1、下载 点击这个链接进行下载https://github.com/nutti/Screencast-Keys 下载好不用解压 2、安装 打开blender进行安装 点击编辑选择偏好设置 选择插件再点击这个下箭头 选择从磁盘安装 然后找到自己刚刚下载好的,点击从磁盘安装 安装完成后勾选上插件 …