python爬虫001

举报
lqj_本人 发表于 2023/03/29 13:02:14 2023/03/29
【摘要】 python爬虫001(http基本原理01)

http基本原理01

uri和url

这里我们先了解一下URI和URL,URI的全称为 Uniform Resource Identifier,即统一资源标志符,URL的全称为UniversalResource Locator,即统一资源定位符。


举例来说,https://github.com/favicon.ico 是 GitHub 的网站图标链接,它是一个 URL,也是一个URI。即有这样的一个图标资源,我们用URL/URI来唯一指定了它的访问方式,这其中包括了访问协议https、访回路径(/即根目录)和资源名称 favicon.ico。通过这样一个链接,我们便可以从互联网上找到这个资源,这就是URL/URI。


URL是URI的子集,也就是说每个URL都是 URI,但不是每个URI都是URL。那么,怎样的URI不是URL呢?URI还包括一个子类叫作URN,它的全称为 Universal Resource Name,即统一资源名称。URN只命名资源而不指定如何定位资源,比如urn;isbn:0451450523指定了一本书的ISBN可以唯一标识这本书,但是没有指定到哪里定位这本书,这就是 URN。URL、URN和URI的关系。

但是在目前的互联网中,URN用得非常少,所以几乎所有的 URI都是 URL,一般的网页链接我们既可以称为 URL,也可以称为 URI,我个人习惯称为 URL。

超文本

接下来,我们再了解一个概念-超文本,其英文名称叫作 hypertext,我们在浏览器里看到的网页就是超文本解析而成的,其网页源代码是一系列 HTML代码,里面包含了一系列标签,比如 img显示图片,p 指定显示段落等。浏览器解析这些标签后,便形成了我们平常看到的网页,而网页的源代
码HTML就可以称作超文本
例如,我们在 Chrome浏览器里面打开任意一个页面,如淘宝首页,右击任一地方并选择“检查项(或者直接按快捷键 F12),即可打开浏览器的开发者工具,这时在 Elements 选项卡即可看到当前网页的源代码,这些源代码都是超文本。


 HTTP和HTTPS

在淘宝的首页 https://wwwtaobaocom/中,URL的开头会有 http 或 https,这就是访问资源需要的协议类型。有时,我们还会看到 fp、sftp、smb 开头的URL,它们都是协议类型。在爬虫中,我们折取的页面通常就是 http 或 https 协议的,这里首先了解一下这两个协议的含义。
HTTP的全称是 Hyper Text Transfer Protocol,中文名叫作超文本传输协议。HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证高效而准确地传送超文本文档。HTTP 由万维网协会( World Wide Web Consortium)和Internet 工作小组 IETF (Interet Engineering Task Force)共同合作制定的规范,目前广泛使用的是 HTTP1.1版本。

HTTPS的全称是 Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加人SSL层,简称为HTTPS。
HTTPS 的安全基础是 SSL,因此通过它传输的内容都是经过SSL 加密的它的主要作用可以分为两种。
建立一个信息安全通道来保证数据传输的安全。
口确认网站的真实性,凡是使用了 HTTPS 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。现在越来越多的网站和App 都已经向HTTPS方向发展,例如:
口苹果公司强制所有 iOS App在2017年1月1日前全部改为使用HTTPS加密,否则App就无法在应用商店上架;
口谷歌从2017年1月推出的Chrome56开始,对未进行HTTPS加密的网址链接亮出风险提示即在地址栏的显著位置提醒用户“此网页不安全”;
口腾讯微信小程序的官方需求文档要求后台使用HTTPS 请求进行网络通信,不满足条件的域名和协议无法请求。
而某些网站虽然使用了HTTPS 协议,但还是会被浏览器提示不安全,例如我们在 Chrome 浏览器里面打开12306,链接为:https://www.12306.cn/,这时浏览器就会提示“您的连接不是私密连接”这样的话。

这是因为 12306的CA证书是中国铁道部自行签发的,而这个证书是不被 CA机构信任的,所以这里证书验证就不会通过而提示这样的话,但是实际上它的数据传输依然是经过 SSL加密的。如果要爬取这样的站点,就需要设置忽略证书的选项,否则会提示 SSL链接错误。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。