谷歌浏览器模拟get请求 谷歌浏览器模拟get请求参数
大家好,如果您还对谷歌浏览器模拟get请求不太了解,没有关系,今天就由本站为大家分享谷歌浏览器模拟get请求的知识,包括谷歌浏览器模拟get请求参数的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
本文目录
一、python怎么响应后端发送get,post请求的接口
测试用CGI,名字为test.py,放在apache的cgi-bin目录下:
print"Content-type: text/html\n"
if form.has_key("ServiceCode") and form["ServiceCode"].value!="":
print"<h1> Hello",form["ServiceCode"].value,"</h1>"
print"<h1> Error! Please enter first name.</h1>"
使用get方式时,请求数据直接放在url中。
url=""
res_data= urllib2.urlopen(req)
url=""
conn= httplib.HTTPConnection("192.168.81.16")
conn.request(method="GET",url=url)
使用post方式时,数据放在data或者body中,不能放在url中,放在url中将被忽略。
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode= urllib.urlencode(test_data)
requrl=""
req= urllib2.Request(url= requrl,data=test_data_urlencode)
res_data= urllib2.urlopen(req)
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode= urllib.urlencode(test_data)
requrl=""
headerdata={"Host":"192.168.81.16"}
conn= httplib.HTTPConnection("192.168.81.16")
conn.request(method="POST",url=requrl,body=test_data_urlencode,headers= headerdata)
对python中json的使用不清楚,所以临时使用了urllib.urlencode(test_data)方法;
模块urllib,urllib2,httplib的区别
httplib实现了http和https的客户端协议,但是在python中,模块urllib和urllib2对httplib进行了更上层的封装。
httplib.HTTPConnection(host[,port[,stict[,timeout]]])
这个是构造函数,表示一次与服务器之间的交互,即请求/响应
host标识服务器主机(服务器IP或域名)
strict模式是False,表示无法解析服务器返回的状态行时,是否抛出BadStatusLine异常
conn= httplib.HTTPConnection("192.168.81.16",80)与服务器建立链接。
2、HTTPConnection.request(method,url[,body[,header]])函数
method请求的方式,一般是post或者get,
url请求的资源,请求的资源(页面或者CGI,我们这里是CGI)
url=""请求CGI
url=""请求页面
body需要提交到服务器的数据,可以用json,也可以用上面的格式,json需要调用json模块
headers请求的http头headerdata={"Host":"192.168.81.16"}
test_data={'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode= urllib.urlencode(test_data)
requrl=""
headerdata={"Host":"192.168.81.16"}
conn= httplib.HTTPConnection("192.168.81.16",80)
conn.request(method="POST",url=requrl,body=test_data_urlencode,headers= headerdata)
conn在使用完毕后,应该关闭,conn.close()
3、HTTPConnection.getresponse()函数
这个是获取http响应,返回的对象是HTTPResponse的实例。
read([amt])获取响应消息体,amt表示从响应流中读取指定字节的数据,没有指定时,将全部数据读出;
getheader(name[,default])获得响应的header,name是表示头域名,在没有头域名的时候,default用来指定返回值
getheaders()以列表的形式获得header
date=response.getheader('date');
resheader=response.getheaders();
[('content-length','295'),('accept-ranges','bytes'),('server','Apache'),('last-modified','Sat,31Mar201210:07:02GMT'),('connection','close'),('etag','"e8744-127-4bc871e4fdd80"'),('date','Mon,03Sep201210:01:47GMT'),('content-type','text/html')]
date=response.getheader('date');
******************************************************************************************************************************************************************************************************************************************************
所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地。
类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求的内容发送到服务器端,然后读取服务器端的响应资源。
在Python中,我们使用urllib2这个组件来抓取网页。
urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。
它以urlopen函数的形式提供了一个非常简单的接口。
最简单的urllib2的应用代码只需要四行。
我们新建一个文件urllib2_test01.py来感受一下urllib2的作用:
response= urllib2.urlopen(';)
我们可以打开百度主页,右击,选择查看源代码(火狐OR谷歌浏览器均可),会发现也是完全一样的内容。
也就是说,上面这四行代码将我们访问百度时浏览器收到的代码们全部打印了出来。
这就是一个最简单的urllib2的例子。
除了"http:",URL同样可以使用"ftp:","file:"等等来替代。
客户端提出请求,服务端提供应答。
urllib2用一个Request对象来映射你提出的HTTP请求。
在它最简单的使用形式中你将用你要请求的地址创建一个Request对象,
通过调用urlopen并传入Request对象,将返回一个相关请求response对象,
这个应答对象如同一个文件对象,所以你可以在Response中调用.read()。
我们新建一个文件urllib2_test02.py来感受一下:
req= urllib2.Request(';)
response= urllib2.urlopen(req)
可以看到输出的内容和test01是一样的。
urllib2使用相同的接口处理所有的URL头。例如你可以像下面那样创建一个ftp请求。
req= urllib2.Request(';)
在HTTP请求时,允许你做额外的两件事。
这个内容相信做过Web端的都不会陌生,
有时候你希望发送一些数据到URL(通常URL与CGI[通用网关接口]脚本,或其他WEB应用程序挂接)。
在HTTP中,这个经常使用熟知的POST请求发送。
这个通常在你提交一个HTML表单时由你的浏览器来做。
并不是所有的POSTs都来源于表单,你能够使用POST提交任意的数据到你自己的程序。
一般的HTML表单,data需要编码成标准形式。然后做为data参数传到Request对象。
编码工作使用urllib的函数而非urllib2。
我们新建一个文件urllib2_test03.py来感受一下:
url=';
values={'name':'WHY',
'location':'SDU',
'language':'Python'}
data= urllib.urlencode(values)#编码工作
req= urllib2.Request(url, data)#发送请求同时传data表单
response= urllib2.urlopen(req)#接受反馈的信息
the_page= response.read()#读取反馈的内容
如果没有传送data参数,urllib2使用GET方式的请求。
GET和POST请求的不同之处是POST请求通常有"副作用",
它们会由于某种途径改变系统状态(例如提交成堆垃圾到你的门口)。
Data同样可以通过在Get请求的URL本身上面编码来传送。
data['name']='WHY'
data['location']='SDU'
data['language']='Python'
url_values= urllib.urlencode(data)
name=Somebody+Here&language=Python&location=Northampton
url=';
full_url= url+'?'+ url_values
这样就实现了Data数据的Get传送。
有一些站点不喜欢被程序(非人为访问)访问,或者发送不同版本的内容到不同的浏览器。
默认的urllib2把自己作为“Python-urllib/x.y”(x和y是Python主版本和次版本号,例如Python-urllib/2.7),
这个身份可能会让站点迷惑,或者干脆不工作。
浏览器确认自己身份是通过User-Agent头,当你创建了一个请求对象,你可以给他一个包含头数据的字典。
下面的例子发送跟上面一样的内容,但把自身模拟成Internet Explorer。
(多谢大家的提醒,现在这个Demo已经不可用了,不过原理还是那样的)。
url=';
user_agent='Mozilla/4.0(compatible; MSIE 5.5; Windows NT)'
values={'name':'WHY',
'location':'SDU',
'language':'Python'}
headers={'User-Agent': user_agent}
data= urllib.urlencode(values)
req= urllib2.Request(url, data, headers)
response= urllib2.urlopen(req)
以上就是python利用urllib2通过指定的URL抓取网页内容的全部内容,非常简单吧,希望对大家能有所帮助
二、浏览器中GET和POST请求的区别
在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。
HTTP定义了与服务器交互的不同方法,最常用的有4种,Put(增),Delete(删),Post(改),Get(查),即增删改查:
1)Get,它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的,而稍后会提到的Post它是可以修改数据的,所以这也是两者差别之一了。
2) Post,它是可以向服务器发送修改请求,从而修改服务器的,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。
3)Delete删除数据。可以通过Get/Post来实现。
4)Put,增加、放置数据,可以通过Get/Post来实现。
根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。(注意:这里安全的含义仅仅是指是非修改信息。)
根据HTTP规范,POST表示可能修改变服务器上的资源的请求。继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。
HTTP请求:在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。
(1)GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据
因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变
(2)传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。
而在实际开发中存在的限制主要有:
GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
因此对于GET提交时,传输数据就会受到URL长度的限制。
POST:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。
三、谷歌浏览器getall插件怎么用
1、GetAll插件是一款可以快速批量地下载一个新浪微博帐号中的相册中所有照片的谷歌浏览器插件。
2、那么,如何在谷歌浏览器上使用和安装GetAll插件呢?
3、一、找到并下载GetAll插件到本地桌面
4、二、打开Chrome浏览器,在地址栏中输入代码 chrome:extensions,点击回车键,并勾选右上角的"开发者模式"
5、三、将下载到本地桌面上的GetAll插件拖入该页面
6、四、在弹出的操作界面上的“添加扩展程序”按钮,同意安装插件操作
7、五、GetAll插件成功安装到了Chrome浏览器中
8、六、安装好插件后,进入要下载的用户专辑,右上角插件处会出现下载提示,点下插件,就可以解析到所有的图片了。
文章到此结束,如果本次分享的谷歌浏览器模拟get请求和谷歌浏览器模拟get请求参数的问题解决了您的问题,那么我们由衷的感到高兴!
声明:信息资讯网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,版权归原作者东方体育日报所有。若您的权利被侵害,请联系 删除。
本文链接:http://www.gdxhedu.com/news/209973.html