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

3次阅读

共计 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