当前位置: 首页 > news >正文

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

网络爬虫基础

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协议消息头中用来表示具体请求中的媒体信息类型。

相关文章:

  • 多语言商城系统开发流程
  • 【Easylive】consumes = MediaType.MULTIPART_FORM_DATA_VALUE 与 @RequestPart
  • 【英语语法】词法---连词
  • Spring是如何实现资源文件的加载
  • LX5-STM32F103C8T6引脚分布与定义
  • longchain使用通义千问
  • 如何对只能有一个`public`顶层类这句话的理解
  • 大文件分片上传进阶版(新增md5校验、上传进度展示、并行控制,智能分片、加密上传、断点续传、自动重试),实现四位一体的网络感知型大文件传输系统‌
  • Maxscript调用Newtonsoft.Json解析Json
  • 从 TinyZero 到 APR:语言模型推理能力的探索与自适应并行化
  • Linux——入门常用基础指令
  • 基于unsloth微调一个越狱大模型
  • Linux——信号(2)信号保存与捕捉
  • CompletableFuture并行处理任务
  • 《MySQL:MySQL表的基本查询操作CRUD》
  • ros2 humble moveit调试笔记
  • docker基本命令1
  • Day-1 漏洞攻击实战
  • QT:Qt5 串口模块 (QSerialPort) 在 VS2015 中正确关闭串口避免被占用
  • 推荐系统/业务,相关知识/概念1
  • 上海与丰田汽车签署战略合作协议,雷克萨斯纯电动汽车项目落子金山
  • 言短意长|把水搅浑的京东和美团
  • 《上海国际金融中心进一步提升跨境金融服务便利化行动方案》印发
  • 谁在贩卖个人信息?教培机构信息失守,电商平台“订单解密”
  • 大国重器飞天背后,有一位上海航天的“老法师”
  • “75后”新任四川泸州市委副书记张伟,已任市政府党组书记