Python实用技术——爬虫(一):爬虫基础

article/2025/11/8 13:34:13

目录

爬虫这门技术本身是不违法的,但是应该注意:

1,爬取什么数据

2,如何爬取得来的

3,爬取之后如何使用

二,HTTP协议

1,万维网

2,协议:

三,HTTP知识

四,HTTP请求方法:

五,HTTP的响应

六,HTTP的响应状态码

八,HTTPS协议

九,初始HTML文档

十,HTML的标签

学完Python的入门以后,我们便开始深入的学习如何更好的玩Python,寓教于乐。在学习的过程中玩,听人家说,爬虫最容易让初学者有种满足感,意思就是这个内容不是很难。希望大家能学到东西,能看懂我写的东西。

首先,开始这章内容之前,送给大家两句话,希望大家熟记。

网络爬虫必须遵守法律法规。

技术并无对错。

爬虫这门技术本身是不违法的,但是应该注意:

1,爬取什么数据

不能包含用户的个人信息、隐私或者他人的商业秘密
不能侵犯作者的著作权等其他受法律法规保护的内容

2,如何爬取得来的

严格遵守网站设置的robots协议,必须禁止"侵入”
严禁通过“隐瞒事实、虚构真相”的方式对数据进行访问
在规避反爬虫措施的同时,避免干扰被访问网站的正常运行

3,爬取之后如何使用

获取的数据不能替代数据来源方的原服务。

在如今的大数据时代,得数据者得天下的说法是毫不夸张的,现在的社会中,无处不充斥着数据的身影,各行各业中,数据都占据着及其重要的地位,这也就意味着,我们能爬取到的数据只能是人家允许我们看到的,如果人家不给我们看,即设置了一些阻碍去禁止我们爬取的时候,千万不要为了显示自己的能耐而去攻击人家,这是违法的。现在的数据已成为重要的生产要素与核心资源。

对于大众来说,爬虫是成本最低,最方便的数据获取方式,简单到只需要几行代码,数据就成为了囊中之物。但是,风险也高,也就是上面我所说的,网络爬虫必须遵守法律法规。国家已经颁布了大量相关法律,最近的像2021年6月刚颁布的数据安全法,不要试图挑战国家法律!任何组织、个人收集数据应当采取合法、正当的方式,不得窃取或者以其他非法方式获取数据。

一,Robots协议

1994年6月30日,经过搜索引擎研究人员和被爬取网站站长的协商,共同起草了第一-份“robots协议”成为搜索技术企业共同遵守的规范。
 

“Robots协议”更像是一个君子协议,无法阻挡未经许可的爬虫行为,更不能对数据进行实质性的保护。

所以呢,需要法律进一步约束网络参与者的行为。

二,从一个简单的请求开始

1,为什么要从一个简单的请求开始?

一个简单的请求是一个HTTP请求,那什么是HTTP呢?

2,爬虫就是模拟浏览器向服务器发送请求,然后从服务器返回的数据中,筛选目标数据。

因此,我们在学习爬虫之前,我们需要先了解请求与响应的这个过程。

3,

对于网站而言,一般都要部署一个网站服务器,主要功能就是存放网站文件和数据文件,响应用户请求,让用户能够浏览网页下载数据。因为服务器一般使用HTTP协议来与浏览器进行信息交流。因此,网站服务器也常被称为HTTP服务器。

对于互联网用户而言,使用的是web客户端,最常见的就是各类浏览器。我们仅需要输入网址,就能得到想要的页面,我们今天主要的目的就是了解这个过程。

4,请求与响应过程:

1)浏览器中输入URL

URL ( Uniform Resource Locator)
统一资源定位符
➢URL实际上就是互联网标准资源的唯一地址
➢表示了互联网资源位置的和访问资源的方法

互联网上的每个文件都有一个唯一的URL

2)浏览器根据输入的URL输入的URL寻找对应的IP地址

浏览器根据输入的URL寻找对应的IP地址。

IP地址( Internet Protocol Address )
就是给互联网上的每一台主机或者设备分配一个在全世界范围内唯一的标识符
如: 14.215.177.38 
 

3)客户端与目标服务器建立TCP连接

TCP (Transmission Control Protocol)
传输控制协议
➢为了在不可靠的互联网络上提供可靠的、端到端的字节流而专门设计的一个传输协议
 

通过IP地址找到服务器后,目的肯定是为了进行信息交流,因此,必须要建立一个TCP连接,为了在不可靠的互联网络上提供可靠的、端到端的字节流而专门设计的一个传输协议

4)浏览器向web服务器发送HTTP请求

5)收到请求后,将web客户端请求的文档(HTML)作为响应返回(成功与否)

web服务器收到HTTP请求后,将web客户端请求的文档作为响应返回给用户。

6)浏览器对文档进行处理,加载,解析,渲染。

HTTP (HyperText Transfer Protocol )
超文本传输协议
➢互联网上应用最广泛的一种网络传输协议
➢所有的WWW文件都必须遵守这个标准
 

我们要知道,打开网页的本质是什么?

本质就是对网站服务器发送请求,然后由网站服务器返回我们需要访问的文件。

二,HTTP协议

1,万维网

首先,我们要知道万维网,万维网是什么呢?

 这是百度的网址,我们可以看到,开头的地方首先就是https,这就是HTTP协议。

所谓万维网就是后面的www,即world wide website。

2,协议:

网络通信的参与方必须遵循相同的规则。

世界上运行着很多设备,如果这些设备想要能够相互交流,那就必须要定义一些通用的规则来进行交流,人们把操作系统之间的通信称为“协议”。

 网络通信需要使用相同的一组网络协议。

如果要在客户端和服务端传输web文档,HTTP协议就是传输web文档的一种主要协议。

浏览器发送请求,网站服务器响应请求的这个过程中,必须严格遵循HTTP协议的格式,工作方式提供所需的数据。

三,HTTP知识

编写爬虫程序,实际上就是模仿浏览器,向网站服务器发送请求。

 HTTP请求报文:

四,HTTP请求方法:

HTTP定义了一组请求方法,用来表明对目标资源要执行的操作。

 浏览器访问网站一般都使用get请求方法。

 

 

五,HTTP的响应

编写爬虫程序的主要工作:

获取HTTP响应,从中筛选出自己想要的数据。

HTTP响应报文:

 

六,HTTP的响应状态码

状态码告知网站服务器的响应状态

 

 

 

七,HTTP的响应头

HTTP的响应体中,包含了服务器返回的所有网页数据。 

 

八,HTTPS协议

(Hypertext Transfer Protocol Secure)超文本传输安全协议 

HTTPS协议是一种通过网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS
加密数据包。
 

HTTP协议是明文的,不安全的,而HTTPS协议对网络数据传输进行了加密,能够有效保护用户隐私。

HTTPS开发的主要目的是提供对网站服务器的身份认证,保护交换数据的隐私与完整性
 

 

九,初始HTML文档

我们必须要理解网页的基本构造与组成,然后才能去分析筛选出需要的数据。

 无论是什么样的网页,都必须是这样的布局。HTML是支撑网页内容的部分。

通常来讲,我们在浏览器中看到的网页内容就是浏览器解析超文本后的输出结果,即HTML。

HTML超文本标记语言( Hyper Text Markup Language)

➢不是编程语言,而是标记语言
➢使用一套标记标签(Markup Tag)
➢HTML文档包含标记标签和文本内容
 

服务器将HTML文档返回给客户端之后,我们使用的浏览器是知道HTML语法的,所以它会自动解析。解析完之后就是我们所看到的页面。能够实现比文本更丰富的内容。

十,HTML的标签

HTML标签
➢由尖括号包围的关键词,如<html>
➢通常成对出现,如<html>和</html>

标签对中的第一个标签是开始标签,第二个标签是结束标签。

一些高频标签: 

 

 

HTML元素:

从开始标签到结束标签之间的所有代码。

 

 

 

 


http://chatgpt.dhexx.cn/article/F1JocRX6.shtml

相关文章

Python爬虫讲解(超详细)

Python爬虫是一种通过编写程序自动从互联网上获取数据的技术。下面是Python爬虫的详解&#xff1a; 爬虫的基本原理 爬虫的基本原理是**通过模拟浏览器的行为**&#xff0c;访问目标网站&#xff0c;并获取目标页面中的数据。Python爬虫可以使用requests库来发送HTTP请求&…

python爬虫技术整理

Python爬虫——新闻热点爬取 显示更多 可以看到相关的数据接口&#xff0c;里面有新闻标题以及新闻详情的url地址 如何提取url地址 1、转成json&#xff0c;键值对取值&#xff1b; 2、用正则表达式匹配url地址&#xff1b;根据接口数据链接中的pager 变化进行翻页&#xf…

Pytorch创建多任务学习模型

在机器学习中&#xff0c;我们通常致力于针对单个任务&#xff0c;也就是优化单个指标。但是多任务学习(MTL)在机器学习的许多应用中都取得了成功&#xff0c;从自然语言处理和语音识别到计算机视觉和药物发现。 MTL最著名的例子可能是特斯拉的自动驾驶系统。在自动驾驶中需要…

多任务学习 Pytorch实现

多任务学习MTL的简单实现&#xff0c;主要是为了理解MTL 代码写得挺烂的&#xff0c;有时间回来整理一下 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms import numpy as np import matplotlib.pyplot as plt import ma…

【综述】多任务学习

前言 本文对多任务学习(multi-task learning, MTL)领域近期的综述文章进行整理&#xff0c;从模型结构和训练过程两个层面回顾了其发展变化&#xff0c;旨在提供一份 MTL 入门指南&#xff0c;帮助大家快速了解多任务学习的进化史。 1. 什么是多任务学习&#xff1f; 多任务学习…

多任务学习原理与优化

文章目录 一、什么是多任务学习二、为什么我们需要多任务学习三、多任务学习模型演进Hard shared bottom 硬共享Soft shared bottom 软共享软共享&#xff1a; MOE & MMOE软共享&#xff1a; CGC & PLE加入FMMMOE/PLE 的调参ESMM 四、 loss权重1&#xff0c; 利用任务的…

【多任务学习-Multitask Learning概述】

多任务学习-Multitask Learning概述 1.单任务学习VS多任务学习多任务学习的提出多任务学习和单任务学习对比 2.多任务学习共享表示shared representation&#xff1a;多任务学习的优点那么如何衡量两个任务是否相关呢&#xff1f; 当任务之间相关性弱多任务MLP特点总结多任务学…

多任务学习(Multi-Task Learning, MTL)

目录 [显示] 1 背景2 什么是多任务学习&#xff1f;3 多任务学习如何发挥作用&#xff1f; 3.1 提高泛化能力的潜在原因3.2 多任务学习机制3.3 后向传播多任务学习如何发现任务是相关的4 多任务学习可被广泛应用&#xff1f; 4.1 使用未来预测现在4.2 多种表示和度量4.3 时间序…

Tensorflow 多任务学习

之前在caffe上实现了两个标签的多任务学习&#xff0c;如今换到了tensorflow&#xff0c;也想尝试一下&#xff0c;总的来说也不是很复杂。 建立多任务图 多任务的一个特点是单个tensor输入(X)&#xff0c;多个输出(Y_1,Y_2...)。因此在定义占位符时要定义多个输出。同样也需要…

多任务学习:Multi-Task Learning as Multi-Objective Optimization

前言 最近在写一篇文章&#xff0c;是一篇深度学习与安全相结合的文章&#xff0c;模型的输出会交给两个损失函数&#xff08;availability & security&#xff09;进行损失计算&#xff0c;进而反向传播。起初的想法是直接将两项损失进行加权平均&#xff0c;共同进行反向…

深度学习中的多任务学习(一)

任务学习-Multitask Learning概述 Reference https://blog.csdn.net/u010417185/article/details/83065506 1、单任务学习VS多任务学习 单任务学习&#xff1a;一次只学习一个任务&#xff08;task&#xff09;&#xff0c;大部分的机器学习任务都属于单任务学习。多任务学习…

C# 多线程八 任务Task的简单理解与运用二

目录 一.Task 1.AsyncState 2.CompletedTask 3.CreationOptions 4.CurrentId 5.Exception 6.Factory 7.Id 8.IsCanceled 9.IsCompleted 10.IsFaulted 11.Status 二.Task<TResult> 1.Result 上篇&#xff1a; C#…

多任务学习(一)

多任务学习 单任务学习 样本之间没有关联性。 缺点&#xff1a;训练出来的模型不具有泛化性&#xff1b;不共享信息使得学习能力下降。 多任务学习 多任务学习的构建原则 建模任务之间的相关性同时对多个任务的模型参数进行联合学习&#xff0c;挖掘其中的共享信息&#…

多任务学习-Multitask Learning概述

2020-02-22 09:59:48 1、单任务学习VS多任务学习 单任务学习&#xff1a;一次只学习一个任务&#xff08;task&#xff09;&#xff0c;大部分的机器学习任务都属于单任务学习。 多任务学习&#xff1a;把多个相关&#xff08;related&#xff09;的任务放在一起学习&#x…

深度学习之----多任务学习

介绍 在机器学习&#xff08;ML&#xff09;中&#xff0c;通常的关注点是对特定度量进行优化&#xff0c;度量有很多种&#xff0c;例如特定基准或商业 KPI 的分数。为了做到这一点&#xff0c;我们通常训练一个模型或模型组合来执行目标任务。然后&#xff0c;我们微调这些模…

深度学习中的多任务学习介绍

在2017年有一篇关于在深度神经网络中多任务学习概述的论文&#xff1a;《An Overview of Multi-Task Learning in Deep Neural Networks》&#xff0c;论文链接为&#xff1a;https://arxiv.org/pdf/1706.05098.pdf&#xff0c;它介绍了在深度学习中多任务学习(Multi-task Lear…

C# 多线程七 任务Task的简单理解与运用一

目录 一.Task 二.Task中的全局队列和本地队列 三.TaskCreationOptions 枚举 四.CancellationTokenSource/CancellationToken 1.延时取消线程 2.立即取消&#xff1a; 五.Task的三种调用方式 为了防止大家被标题误导 写在前面&#xff1a; Task并不是线程 Task的执行需要…

整理学习之多任务学习

如果有n个任务&#xff08;传统的深度学习方法旨在使用一种特定模型仅解决一项任务&#xff09;&#xff0c;而这n个任务或它们的一个子集彼此相关但不完全相同&#xff0c;则称为多任务学习&#xff08;MTL&#xff09; 通过使用所有n个任务中包含的知识&#xff0c;将有助于改…

多任务学习优化总结 Multi-task learning(附代码)

目录 一、多重梯度下降multiple gradient descent algorithm (MGDA) 二、Gradient Normalization (GradNorm) 三、Uncertainty 多任务学习的优势不用说了&#xff0c;主要是可以合并模型&#xff0c;减小模型体积&#xff0c;只用一次推理也可以加快速度。对于任务表现的提升…

经验 | 训练多任务学习(Multi-task Learning)方法总结

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 转载于&#xff1a;知乎Anticoder https://zhuanlan.zhihu.com/p/59413549 背景&#xff1a;只专注于单个模型可能会忽略一些相关任务中可能提升目标任务的潜在信息&…