爬虫基础

第二章、爬虫基础

2.1 HTTP基本原理

2.1.1 URL和URI

URL:统一资源定位符;URI:统一资源标志符。
URL是URI的子集,即每个URL都是一个URI,反之不一定成立。
URI还有一个子类是URN(统一资源名称),URN只命名资源不指定如何定位资源(URL指定如何定位资源),如urn:isbn:0451450523指定一本书的ISBN(唯一标识这本书),但没有指定在哪里定位这本书,这就是URN。
URN和URL都属于URI,且两者有交叉,但URN用的很少。

2.1.2 超文本

浏览器里看到的网页就是超文本解析而成的,其网页源代码是一系列HTML代码,浏览器解析HTML代码里的各种标签(img,p等)后,就形成我们平常看到的网页,网页的源代码HTML就可以称作超文本
如按F12打开浏览器的开发者工具,在Elements选项卡即可看到当前网页的源代码,这些源代码就是超文本。

2.1.3 HTTP和HTTPS

淘宝首页https://www.taobao.com/中,https就是协议类型,ftp,sftp,smb都是协议的类型。
目前广泛使用HTTP (超文本传输协议)1.1版本
HTTPS是以安全为目标的HTTP通道,简单讲就是HTTP的安全版,即HTTP下加入SSL层。
有些网站虽然使用了HTTPS协议,但还是会提示不安全,如12306网站提示“您的连接不是私密连接”。因为12306的CA证书是中国铁道部自行签发的,该证书不被CA机构信任,如果爬取这样的站点,要设置忽略证书的选项,否则提示SSL链接错误。

2.1.4 HTTP请求过程

network面板

network面板中每一个条目代表一次发送请求和接受响应的过程。
第一列Name:请求的名称,一般URL的最后一部分内容当做名称
第二列Status:响应的状态码
第三列Type:请求的文本类型,document代表请求的是HTML文档,内容是一些HTML代码
第四列Initiator:请求源,标记请求由哪个对象或进程发起
第五列Size:从服务器下载的文件和请求的资源大小,from cache代表从缓存中取得资源
第六列Time:发起请求到获取响应所用的总时间
第七列Timeline-Start Time:可视化瀑布流

点击第一个条目www.baidu.com,再点击Headers,出现下图
这里写图片描述
General部分
Remote Address:远程服务器的地址和端口
Referrer Policy:Referrer判别策略

2.1.5 请求

请求分为4部分:请求方法、请求网址、请求头、请求体
1.请求方法
常见的是GET(显示在URL中)和POST(不显示在URL中)
POST和GET的区别:
POST请求的URL中不会包含参数,参数通常以表单形式传输,包含在请求体
GET请求提交的参数不能超过1024字节,POST没有限制
POST适合含敏感信息(如用户名和密码)的参数或文件内容较大的情况
2.请求网址略
3.请求头
说明服务器要使用的附加信息,如Cookie、Referer、User-Agent

  • Accept:请求报头域,指定客户端可接受哪些类型的信息
  • Host:指定请求资源的主机IP和端口号
  • Referer:标识这个请求从哪个页面发过来的
  • User-Agent:伪装浏览器
  • Content-Type:互联网媒体类型或MIME类型

4.请求体
对于GET请求头为空,POST承载表单数据

Content-Type—————————————————提交数据方式
·······························································································
application/x-www-form-urlencoded·······················表单数据
multipart/form-data·············································表单文件上传
application/json··················································序列化JSON数据
text/xml·····························································XML数据
·································································································
☆构造POST请求要一一对应,否则无法响应

2.1.6 响应

响应分为3部分:响应状态码、响应头、响应体
1.响应状态码
常见错误代码及错误原因见《python3 网络爬虫开发实战》第85页
2.响应头
Content-Type:文档类型,指定返回的数据类型是什么
Expires:指定响应的过期时间
3.响应体
请求图片时,它的响应体就是图片的二进制数据,爬虫请求网页后,要解析的内容就是响应体。
Network下的Preview可以看到网页的源代码

☆网页源代码:审查元素Elements
☆request拉下来的网页:Network ——> Preview
是两回事

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值