赞
踩
目录
看过之前我的文章的朋友应该记得HTTP协议的请求报文的5个重要参数,其中有个method参数,用来指明请求的方法。若没有印象,可以移步初识爬虫——爬虫与HTML介绍先了解一下。
在说请求的方法之前,我们来明确一下URL是什么。URL的全称是统一资源定位符,一个URL其实就对应着网页上的一个资源,例如网页上的一张图片、一首音乐都是一个资源,都有一个URL与之对应。而我们向URL发起请求,实际上是在请求资源。
最基本的请求方法其实有4种,分别为GET、POST、PUT、DELETE。对应着对资源的查、改、增、删。
- GET一般用于获取/查询资源信息;
- POST一般用于更新资源信息;
- GET请求的数据会附在URL的后面,以?分割URL和传输的数据,参数之间用&相连接。就如下图这样,在百度中搜索“周杰伦”,传递的数据放在了URL中。
- POST则会将请求的数据放置在请求的Form(表单)中,就像下图这样,登录拉勾时,你的账号和密码不会附在URL后面,而是被隐藏了起来。
POST比GET的安全性更高,通过上面的对比,其实大家已经能够发现了,如果我们在处理登录页面的时候,采取GET请求,会发生什么事呢?我们输入的账号和密码被明文携带在了URL后面,别人通过查看浏览器历史记录就能知道你的账号和密码,这将会是一件多么可怕的事情。
GET和POST当然还有其他的区别,不过剩下的暂时我们不需要过多地去了解,有兴趣的同学可以浏览下面的网址查看: HTML 请求方法
根据HTTP规范,GET用于资源信息的获取,而且是安全并且幂等的。
- 这里指的安全,仅仅意味着GET只表示资源的获取,而不对资源进行修改。但在实际操作中,很多人并没有按照这个规范来做,也有用GET请求来做增加或删除操作的。
- 这里的幂等指的是对于同一个URL的请求来说,应该返回相同的结果。而POST则不是幂等的,拿登录来说,同样的一个URL,输入的账号和密码不同,返回的结果也是不一样的。
根据HTTP规范,POST表示可能会修改服务器上资源的请求。 例如常见的评论操 作,其实都应该通过POST来实现,评论提交后,资源信息就已经被修改了。
疑问:使用requests.get()返回一个Response对象没有疑问,而对requests.post()也会返回一个Response对象就有疑惑了,疑惑点都在于post不是向URL传输数据吗,怎么还会返回Response对象呢。
解答:其实GET和POST都是向URL发起请求,只是传递数据的方式不同而已,只要是发起请求,服务器都会给出响应的。
程序员写代码并不是从0开始的,我们也是需要借助多个模板拼接,使得代码能够实现我们的想法,而且也并非默写出来,毕竟学习编程是开卷学习,开卷使用,加油,希望你我一同走进爬虫的世界~~
欢迎大家留言一起讨论问题~~~
注:本文是参考风变编程课程资料(已经授权)及部分百度资料整理所得,系博主个人整理知识的文章,如有侵权,请联系博主,感谢~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。