爬虫基础
HTTP基本原理
2.1.1URI和URL
URI 统一的资源标志符
URL 统一资源定位符
每个URL都是URI,但是URI不一定都是URL
URI还包含子类URN(统一资源命名,就像ISBN)
2.1.2 超文本
英文名:hypertext
浏览器看到的网页就是超文本解析而成,我们可以把源代码HTML,
称为超文本。
每个网页都可以通过开发者工具,看到它的源代码。
2.1.3 HTTP和HTTPS
HTTP和HTTPS都是一种访问协议。有时还有ftp,sftp,smb的协议。
HTTP:超文本传输协议。
作用:网络传输超文本数据到本地浏览器的传送协议
HTTPS:是在HTTP上加上了防护层SSL.也就是安全的协议。
作用:文本传输的过程会通过SSL加密。
2.1.4 HTTP请求过程
进入开发者模式
输入URL,然后观察network,就会出现对应的URL,信息。
Name:是请求的名称,一般会将URL的最后一部分内容当作名称。
Status:响应的状态码,这里显示位200,代表响应式正常的。
Type:请求文档的类型。这里为document,代表我们这次请求的是一个HTML文档,内容就是一些HTML代码。
Initiator:请求资源,标记请求是由哪个对象或进程发起的。
Size:从服务器下载的文件和请求的资源的大小,如果是从缓存中取得的资源,则该列会显示from cache。
Time:发起请求到响应的总时间。
Waterfall:网络请求的可视化瀑布。
浏览器接到响应后,会解析响应的内容,进而呈现网页的内容。
2.1.5 请求
请求是指:由客户端向服务器发出的要求。
分为四部分内容:
1.请求方法
2.请求的URL
3.请求头(Request Header)
4.请求体(Request Body)
一,请求方法
常见方法: GET 和 POST。
GET:在浏览器中输入一个URL并回车,就是一个GET请求,请求的参数会包含到URL中。
POST:要在表单中提交后发起,比如一个登入表单,输入用户名和密码后,点击登录,这通常就会发起一个POST请求,其数据会一表单的形式传输,不会体现在URL中。
GET 和 POST请求的区别:
GET请求中的参数包含在URL里面,数据可以在URL中看见,而POST请求的URL不会包含这些数据,数据都是以表单的形式传输,会包含在请求体中。
GET请求提交的数据最多1024字节,而POST没有限制。
运用POST请求的常见:
密码登入,保证密码不显示在URL中,保证安全。
上传数据过大时,也会选用POST方式。
其他请求方式参考: http://www.runoob.com/http/http-methods.html
二,请求的网址
也就是统一的资源定位符URL,它可以确定我们想请求的唯一资源。
三,请求头
请求头,用来说明服务器要使用的附加信息,比较重要的信息有 Cookie、 Referer、 User-Agent等。 下面简要说明一些常用的头信息
口 Accept:请求报头域,用于指定客户端可接受哪些类型的信息。
Accept-Language:指定客户端可接受的语言类型。
Accept-Encoding :指定客户端可接受的内容编码。
Host:用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位 置。 从 HTTP 1. l 版本开始,请求必须包含此内容。
Cookie :也常用复数形式Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地 的数据。 它的主要功能是维持当前访问会话。 例如,我们输入用户名和密码成功登录某个网 站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时, 会发现都是登录状态,这就是 Cookies 的功劳。 Cookies 里有信息标识了我们所对应的服务器 的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookies 并将其发送给服 务器,服务器通过 Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结 果就是登录之后才能看到的网页内容。
口 Referer:此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相 应的处理,如做来源统计、防盗链处理等。
口 User-Agent:简称 UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统 及版本、 浏览器及版本等信息。 在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很 可能会被识别为爬虫。
口 Content-Type:也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTTP 协议 消息头中,它用来表示具体请求中的媒体类型信息。 例如, text/html 代表 HTML 格式, image/gif代表 GIF 图片, application/json 代表 JSON类型,更多对应关系可以查看此对照表: http://tool.oschina.neνcommons。
2.1.6 响应
响应,由服务端返回给客户端,可以分为三部分:响应状态码( Response Status Code )、响应头 ( Response Headers )和响应体( Response Body )。
1.响应状态码
200 代表响应正常。
404 代表为找到网页。
500 代表服务器内部发生错误。
2.响应头
响应头包含了服务器对请求的应答信息,如 Content-Type、 Server、 Set-Cookie 等。
下面简要说明 一些常用的头信息。
Date:标识响应产生的时间。
Last-Modified:指定资源最后的修改时间。
Content-Encoding:指定响应内容的编码。
Serve:包含服务器信息,比如名称,版本号等。
Content-Type:文档的类型,指定返回的数据类型是什么,如text/html代表返回HTML文档,application/x-javascript则代表返回JavaScript文件,image/jpeg则代表返回得是图片。
Set-Cookie:设置Cookies.响应头中的Set-Cookie告诉浏览器需要将此内容放在Cookies中,下次请求携带Cookies请求。
Expires:指定响应的过期时间,可以使代理服务器将加载的内容更新到缓存中。如果再次访问就可以直接从缓存中加载,降低服务器的负载,缩短加载时间。
3.响应体(*)
。 响应的正文数据都在响应体中,比如请求网页时,它的响应体就 是网页的 HTML 代码; 请求一张图片时, 它的响应体就是图片的二进制数据。 我们做爬虫请求网页后, 要解析的内容就是响应体