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

python网络爬虫基础:URL的组成与结构

       URL(Uniform Resource Locator,统一资源定位符),常被称为网页链接、网址,用于在互联网中唯一标识资源的位置。一个典型的 URL 包含以下几部分:

1. 协议(Protocol)

  • 协议指定了访问资源的方式或规则。最常见的协议有 HTTP(超文本传输协议)、HTTPS(安全超文本传输协议)、FTP(文件传输协议)等。
  • URL 中,协议后面紧跟着“://”,如 https://

示例:在 https://example.com 中,https 是协议。

2. 主机名或域名(Hostname/Domain)

  • 域名是指资源所在的服务器地址,通常是人类可读的名称(例如 www.example.com)。
  • 域名由多个部分组成,最右边的部分称为顶级域名(TLD),如 .com.org.cn 等。前面的部分称为二级域名或子域,如 example。如果有额外的部分(如 blog.example.com),则称为三级或更高级别的域名。
  • www全称为World Wide Web,万维网简称,是一种全球性的域名,代表整个互联网。大部分的URL均存在此域名,不过近年来也有部分URL放弃了这一部分,表示不将站点标识为万维网的一部分。
  • 一些 URL 中可能会直接使用 IP 地址(例如 192.168.0.1),代替域名。

示例:在 https://example.com 中,example.com 是域名。

3. 端口号(Port)

  • 端口号用于指定服务器上一个特定服务的入口,默认端口号通常可以省略。
  • 不同协议有默认端口号,例如 HTTP 的默认端口号是 80,HTTPS 是 443。如果使用了非默认端口,则需要在 URL 中指定。

示例:在 https://example.com:8080 中,8080 是端口号。

4. 路径(Path)

  • 路径表示资源在服务器中的具体位置,通常以“/”分隔层级。
  • 路径可以指向一个文件或一个目录,可以为空,表示访问网站的默认页面。

示例:在 https://example.com/docs/index.html 中,/docs/index.html 是路径。

5. 查询参数(Query Parameters)

  • 查询参数为键值对结构,用于向服务器传递额外信息。多个参数之间使用“&”分隔。
  • 查询参数以“?”开始,格式为key=value

示例:在 https://example.com/search?q=URL&lang=zh 中,q=URLlang=zh 是查询参数。

6. 片段标识符(Fragment Identifier)

  • 片段标识符用于指向页面内的特定位置,以“#”开头。
  • 片段通常用于网页的内部导航,在 URL 中定位资源内部的某个部分。

示例:在 https://example.com/docs/index.html#section1 中,#section1 是片段标识符。

7.总结

       一个完整的 URL 结构示例如下:

https://example.com:8080/docs/index.html?q=URL&lang=zh#section1

  • https:协议
  • example.com:域名
  • 8080:端口号
  • /docs/index.html:路径
  • q=URL&lang=zh:查询参数
  • #section1:片段标识符

8.题外话

       URI(Uniform Resource Identifier,统一资源标志符),包括URL与URN(Uniform Resource Name,统一资源名称),后者只对资源进行唯一命名但没有定位信息,普遍出现较少,故一般情况下可以将URI与URL等价,URL是传播更加广泛的称呼。


http://www.kler.cn/news/367143.html

相关文章:

  • 改进YOLOv8系列:引入低照度图像增强网络Retinexformer | 优化低光照目标检测那题
  • python爬虫——Selenium的基本使用
  • uniapp 引入了uview-ui后,打包错误,主包过大解决方案
  • Ubuntu20.04系统安装opencv
  • C#之Aes加密解密
  • Telegram机器人的手机部署
  • HTTP错误代码解决详解
  • 手写数据库连接池---C++11(上)
  • vue3+vite 部署npm 包
  • BitNet: Scaling 1-bit Transformers for Large Language Models
  • BUG-mmdet解析数据时候,TypeError: expected dtype object, got ‘numpy.dtype[bool_]‘
  • C++的const关键字
  • ELK收集nginx日志
  • 【Java基础】2、Java基础语法
  • Spring Boot实现的动态化酒店住宿管理系统
  • SQLite 数据库设计最佳实践
  • 在服务器启动docker容器卡住、无启动成功信息,docker ps一a状态码137
  • Flutter杂学: iOS 上启用自动填充和关联域
  • Rust 中的条件变量:深入解析与实践
  • TensorFlow面试整理-模型部署与优化
  • 练习LabVIEW第二十题
  • Kafka相关API开发
  • sass软件登录设定——未来之窗行业应用跨平台架构
  • [论文笔记]ColPali: Efficient Document Retrieval with Vision Language Models
  • 使用kubeadm安装k8s1.24高可用集群
  • C++标准模板库--list