关于python:爬虫系列-2Http请求和响应写爬虫这些内容必须掌握

36次阅读

共计 2755 个字符,预计需要花费 7 分钟才能阅读完成。

爬虫是建设在网络申请的根底上。所以在开始爬虫之前肯定要有肯定的网络常识。

一、HTTP 协定

HTTP 协定,全称为 HyperText Transfer Protocol。翻译过去呢就是 超文本传输协定,默认端口是 80,而 HTTPS 呢则是在 HTTP 的根底上退出了 SSL 层,这样呢就会绝对平安,申请不会那么轻易的被他人劫持。默认端口是 443。

比方咱们常常拜访的百度、淘宝、B 站、 P 站 等等 都是 HTTPS 的

当咱们在浏览器中输出网址,按回车后会产生什么?

以下为简述,更多细节能够自行查阅

1、比方我在浏览器中输出www.p_zhan.com(别试了,这是个假网站)。首先会进行 DNS 解析,获取服务器的 IP 地址。

2、而后客户端和服务器端会建设 TCP 链接,链接的过程就是三次握手。通过三次握手之后,客户端与服务端会建设一个牢靠的链接,而后就能够进行数据的传输了。

3、发送 HTTP 申请,浏览器输出的地址申请形式是 GET 申请!

4、获取服务器的响应。响应码又分为 2xx,3xx,4xx,5xx 等

5、将内容进行解码,如果数据须要展现,再由浏览器进行渲染。

申请办法:在 HTTP/1.1 定义的申请尽管有 8 种,然而把握以下 6 种根本就够了

  • GET:发送的申请是获取服务器上的资源。申请体 中不会蕴含申请数据,申请数据会放在协定头上
  • POST:向服务器提交资源,比方表单提交,上传文件等。申请数据会放在申请体重
  • HEAD:实质与 GET 一样。然而不返回报文主体局部,用于确认 URI 的有效性以及资源的更新工夫等
  • PUT:罕用于上传文件。
  • DELETE:删除文件
  • OPTIONS:查问申请的资源反对的申请办法。

响应码:

响应码又称为状态码,示意页面服务器超文本传输协定响应状态的 3 位数字代码。

1xx: 信息
音讯:形容:
100 Continue服务器仅接管到局部申请,然而一旦服务器并没有回绝该申请,客户端应该持续发送其余的申请。
101 Switching Protocols服务器转换协定:服务器将听从客户的申请转换到另外一种协定。
103 Checkpoint用于 PUT 或者 POST 申请复原失败时的复原申请倡议。
2xx: 胜利
音讯:形容:
200 OK申请胜利(这是对 HTTP 申请胜利的规范应答。)
201 Created申请被创立实现,同时新的资源被创立。
202 Accepted供解决的申请已被承受,然而解决未实现。
203 Non-Authoritative Information申请曾经被胜利解决,然而一些应答头可能不正确,因为应用的是其余文档的拷贝。
204 No Content申请曾经被胜利解决,然而没有返回新文档。浏览器应该持续显示原来的文档。如果用户定期地刷新页面,而 Servlet 能够确定用户文档足够新,这个状态代码是很有用的。
205 Reset Content申请曾经被胜利解决,然而没有返回新文档。但浏览器应该重置它所显示的内容。用来强制浏览器革除表单输出内容。
206 Partial Content客户发送了一个带有 Range 头的 GET 申请,服务器实现了它。
3xx: 重定向
音讯:形容:
300 Multiple Choices多重选择。链接列表。用户能够抉择某链接达到目的地。最多容许五个地址。
301 Moved Permanently所申请的页面曾经转移至新的 URL。
302 Found所申请的页面曾经长期转移至新的 URL。
303 See Other所申请的页面可在别的 URL 下被找到。
304 Not Modified未按预期批改文档。客户端有缓冲的文档并收回了一个条件性的申请(个别是提供 If-Modified-Since 头示意客户只想比指定日期更新的文档)。服务器通知客户,原来缓冲的文档还能够持续应用。
305 Use Proxy客户申请的文档应该通过 Location 头所指明的代理服务器提取。
306 Switch Proxy目前已不再应用,然而代码仍然被保留。
307 Temporary Redirect被申请的页面曾经长期移至新的 URL。
308 Resume Incomplete用于 PUT 或者 POST 申请复原失败时的复原申请倡议。
4xx: 客户端谬误
音讯:形容:
400 Bad Request因为语法错误,服务器未能了解申请。
401 Unauthorized非法申请,但对被申请页面的拜访被禁止。因为被申请的页面须要身份验证,客户端没有提供或者身份验证失败。
402 Payment Required此代码尚无奈应用。
403 Forbidden非法申请,但对被申请页面的拜访被禁止。
404 Not Found服务器无奈找到被申请的页面。
405 Method Not Allowed申请中指定的办法不被容许。
406 Not Acceptable服务器生成的响应无奈被客户端所承受。
407 Proxy Authentication Required用户必须首先应用代理服务器进行验证,这样申请才会被解决。
408 Request Timeout申请超出了服务器的等待时间。
409 Conflict因为抵触,申请无奈被实现。
410 Gone被申请的页面不可用。
411 Length Required“Content-Length” 未被定义。如果无此内容,服务器不会承受申请。
412 Precondition Failed申请中的前提条件被服务器评估为失败。
413 Request Entity Too Large因为所申请的实体太大,服务器不会承受申请。
414 Request-URI Too Long因为 URL 太长,服务器不会承受申请。当 POST 申请被转换为带有很长的查问信息的 GET 申请时,就会产生这种状况。
415 Unsupported Media Type因为媒介类型不被反对,服务器不会承受申请。
416 Requested Range Not Satisfiable客户端申请局部文档,然而服务器不能提供被申请的局部。
417 Expectation Failed服务器不能满足客户在申请中指定的申请头。
5xx: 服务器谬误
音讯:形容:
500 Internal Server Error申请未实现。服务器遇到不可预知的状况。
501 Not Implemented申请未实现。服务器不反对所申请的性能,或者服务器无奈实现申请。
502 Bad Gateway申请未实现。服务器充当网关或者代理的角色时,从上游服务器收到一个有效的响应。
503 Service Unavailable服务器以后不可用(过载或者当机)。
504 Gateway Timeout网关超时。服务器充当网关或者代理的角色时,未能从上游服务器收到一个及时的响应。
505 HTTP Version Not Supported服务器不反对申请中指明的 HTTP 协定版本。
511 Network Authentication Required用户须要提供身份验证来获取网络拜访入口。

正文完
 0