通过GET和POST方式获取页面内容

转载 2016年08月28日 20:03:43

网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。

HTTP协议中定义了四个与服务器进行交互的方法,分别是GET, POST,PUT,DELETE ,实际对应对服务器内容的“增”删“改”查“四个操作。


本篇文章主要记录我学习GET和POST请求方式的过程

首先,如何区分GET 和POST请求?

我们可以简单地通过浏览器地址栏是否改变来加以区分。举例说明,在百度上搜索CSDN时,页面会跳转到搜索结果页,同时浏览器上方的URL也会发生改变。

这里写图片描述

如上图所示,变化就在于,在最初的url后面会附加相关的字段,以?分割url和请求的数据,这些数据就是你要查询字段的编码。。而这个过程,就是典型的GET请求的情况。

POST请求则显得”深藏不露“。它在于你必须通过浏览器输入或提交一些服务器需要的数据,才能给你返回完整的界面,这点其实与GET请求情况有相通之处,但是这个过程浏览器的地址栏是不会发生跳转的。

那POST请求提交的数据是如何传给服务器的呢?可以采用一些分析页面的手段来获取上传的数据。实际上,POST请求是将提交的数据放在HTTP包的包体中,这种方式无疑加强了数据的安全性,不像GET请求那样,用户可以通过跳转的url就可以查看出向服务器发送的数据。另外,POST请求除了提交数据外,还可以提交文件,这点也是GET请求做不到的。

总结:在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用POST方式。


下面用具体代码展示GET与POST方式的差异

 #coding =utf-8
import urllib2
url="http://www.baidu.com"
req=urllib2.Request(url)#req表示向服务器发送请求#
response=urllib2.urlopen(req)#response表示通过调用urlopen并传入req返回响应response#
the_page=response.read()#用read解析获得的HTML文件#
print the_page#在屏幕上显示出来#

这是一个最简单的爬虫程序,功能类似于打开百度主页。如果你此时用浏览器打开百度并查看其源代码,会发现屏幕上的内容和浏览器中完全一样,也就是说,上面这四行代码将我们访问百度时浏览器收到的代码们全部打印了出来。
这就是一个最简单的GET的例子。

再来看一个POST方式的例子

#code=utf-8
import urllib2
import urllib
url='http://www.baidu.com'
//把要发送的数据写成字典
value={
    'name':'BUPT',
    'age':'60',
    'location':'Beijing'#字典中的内容随意,不影响#
}
data=urllib.urlencode(value)#对value进行编码,转换为标准编码#
req=urllib2.Request(url,data)#向url发送请求,并传送表单data#
response=urllib2.urlopen(req)#获取响应#
the_page=response.read()#解析#
print the_page#显示#

程序运行之后,你可以试试将获取的网页源代码用浏览器打开,会发现得到的页面是这样的

因为我们向网站提供的数据是随便写的,并不存在,所以就会得到这样的结果。

这里写图片描述

转自:http://m.blog.csdn.net/article/details?id=51464503

相关文章推荐

yum 安装 mysql CentOS6.5 的默认路径

>1、 使用命令service mysqld stop 停止mysql 查看mysql数据库的默认路径:/var/lib/mysql 使用cp -afir  /var/lib/mysql/*   /u...

WebGL-片元着色器 1.Bloom特效实现

编辑文章 第一件事先上demo吧     Bloom特效 demo下载地址 这篇文章耽误了很久。 首先说一下目的。今天是为了实现一个模糊特效的算法,这个算法常用与游戏里面post proces...

python网络爬虫学习(一)通过GET和POST方式获取页面内容

python网络爬虫学习 (一)通过GET和POST方式获取页面内容网络爬虫,即Web Spider,是一个很形象的名字。 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。HTTP...

asp.net页面的提交方式POST和GET区别及用法?

asp.net页面的提交方式POST和GET有什么区别?1 get是从服务器上获取数据,post是向服务器传送数据。(1) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方...
  • hwj528
  • hwj528
  • 2015年11月26日 10:21
  • 732

python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求

一、JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Program...
  • fireroll
  • fireroll
  • 2014年08月06日 09:58
  • 12861

Post和Get的区别(兼谈页面间传值的方式)

Post和Get的区别(兼谈页面间传值的方式) 从一个页面转向另一个页面的请求方式有两种,Post和Get. 如果从原理上来探究他们的区别,涉及到Http传输协议的细节,本文不加探究,只讨论...
  • Samsone
  • Samsone
  • 2013年07月24日 10:30
  • 1787

php发送get、post请求的几种方法 以及获取内容

方法1: 用file_get_contents 以get方式获取内容 $url='http://www.domain.com/'; $html = file_get_contents($url...

c#通过GET/POST获取页面的代码

c#通过GET/POST获取页面的代码 ///     /// 提供web处理方法的类     ///     public class WebTreatment     {...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过GET和POST方式获取页面内容
举报原因:
原因补充:

(最多只允许输入30个字)