Python爬虫知识点——请求
请求
:请求方法、请求网址、请求头、请求体
请求方法:
常见的为:GET、POST
GET与POST主要区别:
- GET请求参数包含在URL,可从URL中看出。POST请求的URL不包含参数,都是通过表单的形式传输的,包含在请求体中
- GET请求提交的数据最多只有1024字节,POST无限制
其他还有HEAD、PUT、DELETE、CONNECT、OPTIONS、TRACE
请求的网址:
即URL,我们想要请求的资源
请求头:
用来说明服务器要使用的附加信息,比较总要的有Cookie、Referer、User-Agent等。
Accept:请求报头域,用于指定客户端可接受哪些类型的信息。
Accept-Language:指定客户端可接受的语言类型。
Accept-Encoding:指定客户端可接受的内容编码。
Host:用于指定请求资源的主机IP和端口号,其内容为请求URL的原始服务器或网关的位 置。从HTTP1.1版本开始,请求必须包含此内容。
Cookie:也常用复数形式Cookies, 是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访问会话。例如,我们输人用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies的功劳。Cookies里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上Cookies 并将其发送给服务器,服务器通过Cookies识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。
Referer:此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做来源统计、防盗链处理等。
User-Agent: 简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等消息。在做爬虫时加上此信息,可以伪装成浏览器;如果不加,很可能被识别出为爬虫
Content-Type:也叫互联网媒体类型( Intermet Media Type)或者MIME类型,在HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。更多对应关系可以查看此对表:http://tool.oschina.net/commons
文件扩展名 | Content-Type(Mime-Type) |
---|---|
.html、 .htx 、 .htm | text/html |
.gif | image/gif |
.json | application/json |
Content-Type与POST提交数据方式的关系
Content-Type | 提交数据的方式 |
---|---|
appication/x-www-urlencodeed | 表单数据 |
multipart/form-data | 表单文件上传 |
applicatiobn/json | 序列化json数据 |
text/html | XML数据 |
如果构造POST请求,需要使用正确的Content-Type,不然可能导致POST提交后无法正常响应
==>因此,请求头是请求的重要组成部分,在写爬虫时,大部分情况下都需要设定请求头。
请求体:
请求体一般承载的内容是POST请求中的表单数据,而对GET请求,请求体则为空。
文章摘自崔庆才的《Python3网络爬虫开发实战》