Python网络爬虫的规则
“The website is the API.”
本节内容参考链接: link.
网络协议
1、什么是协议?
协议通俗的说就是规矩谁能立规矩呢,只有人。
生活中,协议无处不在,比如说我们把会发出汪汪声音的动物叫做狗,我们见了一条狗,我们说这是一条狗。这就是一种命名的协议。我们学习数学,数学有四则运算,我们让交叉的两条线代表乘法,这也是一种协议。所以,协议是人规定的,是一种规则。
2、什么是网络协议呢?
其实网络协议很简单。网络是由计算机构成的。计算机之间可以发出信号进行通讯。为了更好地方便人类交流,我们把这些信号的收发制定了一些规范,这些规范就是协议。
我们先以人与人之间的写信为例,如果我要给老师写信那么开头就是尊敬的老师。如果要给自己的下属写信开头就是小王怎样怎样,如果要给情人写信那么开头就是小宝贝儿。也就是说在人与人之间可以完成写信这个动作的前提下给不同身份的人写信有不同的开头或者说有不同的话术,这些对话套路也是协议,我们可以分为领导协议、老婆协议、情人协议等等。
再回过头来看,网络协议。最低层的就是TCPIP协议。这个协议规定了计算机之间如何判断连接成功可以进行通话了。其他的诸如HTTP协议FTP协议等等都是建立在这个协议之上,也就说两个电脑可以顺畅通信的前提下。我们发不同的协议头(可以看做写信的开头)代表着不同的协议,HTTP协议一般就是请求一个网页过来,ftp协议就是上传下载一个文件用。
3、HTTP和HTTPS协议
在两条电脑可以通信的基础上,不同的协议就是代表两者之间不同的话术。http和https协议是搞爬虫接触比较频繁的协议。https相比http多了一层加密算法使得数据传输更加安全。
浏览器打开一个网址其实就是发http/https请求给网页服务器,服务器返回页面给浏览器。爬虫要做的就是代替浏览器发请求并接受传输来的页面数据!
http/https请求都包含请求行、请求头部、空行、请求数据四部分,http/https响应包含状态行、消息报头、空行、响应正文四部分!一个典型的HTTP示例:
请求头和响应头使我们研究的重点。我们在浏览器上点击右键审查元素或者按f12,用浏览器访问www.python66.com这个网址就可以抓到http/https网络数据包,图示如下:
请求头Request Header
响应头Response Headers
响应内容Response
Requests库
爬取网页的通用代码框架
import requests
try:
r=requests