小白做爬虫,要从HTTP基本原理开始了解

HTTP基础-来自《python3网络爬虫开发实战》

HTTP基本原理摘要

HTTP和HTTPS

HTTPS是以安全为目标的HTTP通道,即是HTTP的安全版,HTTP下加入SSL层,简称HTTPS。
SSL的主要作用可以分两种:

  1. 建立一个信息安全通道来保证数据传输的安全;
  2. 确认网站的真实性。
    在这里插入图片描述

对于那些提示“您的连接不是私密连接”提示的网站,因为其证书是不被CA机构信任的,所有在爬取这样的站点时,就需要设置忽略证书的选项,否则会提示SSL链接错误。

# 1. 导入Python SSL处理模块
import ssl

# 2. 表示忽略未经核实的SSL证书认证(注:context指背景、环境、来龙去脉;语境、上下文)
context = ssl._create_unverified_context()
......
# 3. 在urlopen()方法里 指明添加 context 参数
response = urllib2.urlopen(request, context = context)


#或者这样:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

HTTP请求过程

我们在浏览器中输入一个URL,浏览器作为一个客户端向网站的服务器发送一个请求,服务器收到这个请求后解析、处理并返回响应,响应里包含了页面的源代码,浏览器再解析呈现。
1、观察网络请求
在浏览器页面上,点右键选择“检查”,即打开了浏览器的开发者工具,查看network页面下方出现的条目,每一个条目就代表一次发送请求和接收响应的过程。(读书到此,我突然感觉这满眼的字母没那么神秘了,能懂一点点儿了,感谢有书!)

  • 第一列Name:请求的名称,一般会将URL的最后一部分内容当作名称。
  • 第二列Status:响应的状态码,这里显示为200,代表响应是正常的。200为正常。
  • 第三列Type:请求的文档类型。这里document,代表请求的是一个HTML文档。
  • 第四列Initiator: 请求源。用来标记请求是由哪个对象或进程发起的。
  • 第五列Size:从服务器下载的文件 和请求的资源大小 。如果是从缓存中取得的资源,则该列会显示from cache.(我估计我的是图中memory cache就表示从缓存中了的资源)
  • 第六列Time:发起请求到获取响应所用的总时间。
  • 第七列Waterfall:网络请求的可视化瀑布流。

2、解读请求条目
在这里插入图片描述
第一部分:General。有请求的地址、方法(get)、响应的状态码、远程服务器的地址和端口和Referrer判别策略。

在这里插入图片描述

第二部分:Request Headers 请求头
Accept:用于指定客户端可接受哪些类型的信息,text/html 代表HTML格式。
Accept-Language:指定客户端可接受的语言类型。
Accept-Encoding:指定客户端可接受的内容编码。
Host:指定请求资源的主机IP和端口号。
Cookies:网站为辨别用户进行会话跟踪而存储在用户本地的数据。以维持当前会话。
User-Agent:可以使服务器识别客户使用的操作系统有版本、浏览器及版本信息。在做爬c虫时加此,以伪装为浏览器,如果不加,很可能会被识别出为爬虫。
Content-Type:互联网媒体类型。
注意:get的请求体为空,而post的请求体有表单数据。

在这里插入图片描述

第三部分:响应部分
Date:标识响应产生的时间。
Content-Encoding:指定响应内容的编码.
Server:包含服务器的信息,如名称和版本号
Content-Type:文档类型。
Set-Cookie:告诉浏览器需要将些内容放在Cookies中,下次请求携带Cookies请求。

注意:最重要的是响应体,此为爬虫解析的内容 。见Preview中的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值