上一章讲到如何实战,下载图片,这一章来讲一些理论但却必须知道的东西。(摘自《python3 网络爬虫开发实战》)
1 . 请求方法 常见的请求方法有两种 :
GET 和 POST。 在浏览器中直接输入 URL 井回车,这便发起了一个 GET 请求,请求的参数会直接包含到 URL 里。 例如,在百度中搜索 Python,这就是一个 GET请求,链接为 htψs://www.baidu.corn/s?wd=Python, 其中 URL 中包含了请求的参数信息,这里参数 wd 表示要搜寻的关键字。 POST 请求大多在表单提交 时发起。 比如,对于一个登录表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个 POST 请求,其数据通常以表单的形式传输,而不会体现在 URL 中。 GET 和 POST请求方法有如下区别。 口 GET 请求中的参数包含在 URL 里面,数据可以在 URL 中看到,而 POST 请求的 URL 不会包 含这些数据,数据都是通过表单形式传输的,会包含在请求体中。 口 GET请求提交的数据最多只有 1024 字节,而 POST方式没有限制。 一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用 GET 方式请求的话, 密码就会暴露在 URL 里面,造成密码泄露,所以这里最好以 POST方式发送。 上传文件时,由于文件 内容比较大,也会选用 POST 方式。
2. 请求头,用来说明服务器要使用的附加信息,比较重要的信息有 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 图片,