开房酒店入住记录查询被别人随便查了怎么办

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
以前写小应用只写过简单的http请求,最近有一些需要复杂的实现,遇到一些问题,还希望得到大家指点。
我的疑问点在于如何实现模拟登录,cookie应该可以实现,但是每台pc的cookie不同,我想有一个稍微通用的解决方案,即只需提供帐号密码就可实现。这其中应该涉及到post请求,具体怎么实现呢?
以下是我写的代码片段
#coding:utf8
import requests
url = '/v2/api/?login'
postdata = {
'username' : '',
'password' : '',
s = requests.session()
response = s.post(urls, data = postdata)
#coding:utf8
import requests
req = requests.get('http://www./s', params={'wd':'python'})
print req.text
每次都是200 ,但是返回内容和我想要的内容不一样。大家都是怎么做的呢?还有怎么判断返回的页面是不是想要的?不胜感激!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
百度登陆的话,你这样应该是登陆失败吧。百度登陆没有那么简单的,参考网页我弄丢了好像。你要么用 Firebug 分析百度的登陆流程,要么参考这个 ,要么等我写博客介绍吧。
注意,要登陆百度,首先要访问百度的任意页面取得一个 cookie,然后才能 POST 登陆信息的。
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 Apppython用法: post一个http请求, schedule一个task
内容在上也有,这里转摘一下。近期用空闲时间看了看python的一部分module,感觉这斯功能确实so good, so powerful.(1) 用它post一个http请求:
&urllib,urllib2,cookielib&
&post3():&&&
&cookielib.CookieJar()&&&&&url_login&
.cn/cgi-bin/login.cgi
&&&&&body&
),&&&&&&&&&(
))&&&&opener
urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))&&&&&
opener.addheaders&=&[('User-agent',&'Opera/9.23')]&
&&&&opener.addheaders&
User-agent
,&&&&&&&&&
Mozilla/4.0&(&MSIE&6.0;&Windows&NT&5.1)
)]&&&&urllib2.install_opener(opener)&&&&&req
urllib2.Request(url_login,urllib.urlencode(body))&&&&&u
urllib2.urlopen(req)&&&&
&u.read().decode(
下午,试了一下python的http 相关类的方法,用上述代码登录新浪邮箱,试了一段时间,比较关键的是User-agent,上边两种浏览器的agent都支持。估计python默认的User-agent得不到的验证。
python写这种http method代码还是蛮方便的。
(2) 写一个定时执行任务的小东东,这里是单线程版本,要改成多线程的也容易。
!/usr/bin/env&python
coding=utf-8
&thread,&time
&task():&&&&
&&&&Here&we&can&execute&some&task&to&be&scheduled&every&n&seconds&&&&
task&doing&...&...
&main(n):&&&&t&
&time.time()&&&&start_t&
&t&&&&end_t&
<span style="COLOR: #
<span style="COLOR: #
<span style="COLOR: #
while&(t&&&end_t):
&True:&&&&&&&&task()&&&&&&&&time.sleep(n)&&&&&&&&t&
&time.time()&&&&&&&&
:&&&&&&&&main(
<span style="COLOR: #
&KeyboardInterrupt:&&&&&&&&
System&exit&...&...&
&&&&&&&&sys.exit(
<span style="COLOR: #
原文链接:Python发送HTTP请求_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Python发送HTTP请求
来源:Linux社区&
作者:yangchao228
python发送HTTP请求 今天用python写一个发送HTTP请求的功能,查了下文档,发现实现也就4、5行左右,不禁感叹啊,查了下原来找的java实现的,相比还是臃肿了很多。 所以,python的好处还是蛮多的,对于 这些小的功能点相当适合。 附上官方的实例:
01&Here&is&an&example&session&that&uses&the&GET&method:&&&&
03&&&&&import&httplib&&&&
04&&&&&conn&=&httplib.HTTPConnection("www.python.org")&&&&
05&&&&&conn.request("GET",&"/index.html")&&&&
06&&&&&r1&=&conn.getresponse()&&&&
07&&&&&print&r1.status,&r1.reason&&&&
08&200&OK&&&&
09&&&&&data1&=&r1.read()&&&&
10&&&&&conn.request("GET",&"/parrot.spam")&&&&
11&&&&&r2&=&conn.getresponse()&&&&
12&&&&&print&r2.status,&r2.reason&&&&
13&404&Not&Found&&&&
14&&&&&data2&=&r2.read()&&&&
15&&&&&conn.close()&&&&
17&Here&is&an&example&session&that&uses&the&HEAD&method.&Note&that&the&HEAD&method&never&returns&any&data.&&&&
19&&&&&import&httplib&&&&
20&&&&&conn&=&httplib.HTTPConnection("www.python.org")&&&&
21&&&&&conn.request("HEAD","/index.html")&&&&
22&&&&&res&=&conn.getresponse()&&&&
23&&&&&print&res.status,&res.reason&&&&
24&200&OK&&&&
25&&&&&data&=&res.read()&&&&
26&&&&&print&len(data)&&&&
28&&&&&data&==&''&&&&
29&True&&&
31&Here&is&an&example&session&that&shows&how&to&POST&requests:&&&&
33&&&&&import&httplib,&urllib&&&&
34&&&&&params&=&urllib.urlencode({'spam':&1,&'eggs':&2,&'bacon':&0})&&&&
35&&&&&headers&=&{"Content-type":&"application/x-www-form-urlencoded",&&&&
36&...&&&&&&&&&&&&"Accept":&"text/plain"}&&&&
37&&&&&conn&=&httplib.HTTPConnection("musi-:80")&&&&
38&&&&&conn.request("POST",&"/cgi-bin/query",&params,&headers)&&&&
39&&&&&response&=&conn.getresponse()&&&&
40&&&&&print&response.status,&response.reason&&&&
41&200&OK&&&&
42&&&&&data&=&response.read()&&&&
43&&&&&conn.close()&&&
相关资讯 & & &
& (01月26日)
& (12/11/:46)
& (10/06/:35)
& (01月03日)
& (11/26/:21)
& (10/04/:39)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款python通过get,post方式发送http请求和接收http响应的方法
作者:无影
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了python通过get,post方式发送http请求和接收http响应的方法,涉及Python使用urllib模块与urllib2模块实现get与post发送数据的相关技巧,需要的朋友可以参考下
本文实例讲述了python通过get,post方式发送http请求和接收http响应的方法。分享给大家供大家参考。具体如下:
测试用CGI,名字为test.py,放在apache的cgi-bin目录下:
#!/usr/bin/python
import cgi
def main():
print "Content-type: text/html\n"
form = cgi.FieldStorage()
if form.has_key("ServiceCode") and form["ServiceCode"].value != "":
print "&h1& Hello",form["ServiceCode"].value,"&/h1&"
print "&h1& Error! Please enter first name.&/h1&"
python发送post和get请求
使用get方式时,请求数据直接放在url中。
import urllib
import urllib2
url = "http://192.168.81.16/cgi-bin/python_test/test.py&#63;ServiceCode=aaaa"
req = urllib2.Request(url)
res_data = urllib2.urlopen(req)
res = res_data.read()
import httplib
url = "http://192.168.81.16/cgi-bin/python_test/test.py&#63;ServiceCode=aaaa"
conn = httplib.HTTPConnection("192.168.81.16")
conn.request(method="GET",url=url)
response = conn.getresponse()
res= response.read()
post请求:
使用post方式时,数据放在data或者body中,不能放在url中,放在url中将被忽略。
import urllib
import urllib2
test_data = {'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode = urllib.urlencode(test_data)
requrl = "http://192.168.81.16/cgi-bin/python_test/test.py"
req = urllib2.Request(url = requrl,data =test_data_urlencode)
res_data = urllib2.urlopen(req)
res = res_data.read()
import urllib
import httplib
test_data = {'ServiceCode':'aaaa','b':'bbbbb'}
test_data_urlencode = urllib.urlencode(test_data)
requrl = "http://192.168.81.16/cgi-bin/python_test/test.py"
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)
response = conn.getresponse()
res= response.read()
对python中json的使用不清楚,所以临时使用了urllib.urlencode(test_data)方法;
模块urllib,urllib2,httplib的区别
httplib实现了http和https的客户端协议,但是在python中,模块urllib和urllib2对httplib进行了更上层的封装。
介绍下例子中用到的函数:
1、HTTPConnection函数
httplib.HTTPConnection(host[,port[,stict[,timeout]]])
这个是构造函数,表示一次与服务器之间的交互,即请求/响应
host 标识服务器主机(服务器IP或域名)
port 默认值是80
strict 模式是False,表示无法解析服务器返回的状态行时,是否抛出BadStatusLine异常
conn = httplib.HTTPConnection("192.168.81.16",80) 与服务器建立链接。
2、HTTPConnection.request(method,url[,body[,header]])函数
这个是向服务器发送请求
method 请求的方式,一般是post或者get,
method="POST"或method="Get"
url 请求的资源,请求的资源(页面或者CGI,我们这里是CGI)
url="http://192.168.81.16/cgi-bin/python_test/test.py" 请求CGI
url="http://192.168.81.16/python_test/test.html" 请求页面
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 = "http://192.168.81.16/cgi-bin/python_test/test.py"
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的实例。
4、HTTPResponse介绍:
HTTPResponse的属性如下:
read([amt]) 获取响应消息体,amt表示从响应流中读取指定字节的数据,没有指定时,将全部数据读出;
getheader(name[,default]) 获得响应的header,name是表示头域名,在没有头域名的时候,default用来指定返回值
getheaders() 以列表的形式获得header
date=response.getheader('date');
print date
resheader=''
resheader=response.getheaders();
print resheader
列形式的响应头部信息:
[('content-length', '295'), ('accept-ranges', 'bytes'), ('server', 'Apache'), ('last-modified', 'Sat, 31 Mar :02 GMT'), ('connection', 'close'), ('etag', '"ebc871e4fdd80"'), ('date', 'Mon, 03 Sep :47 GMT'), ('content-type', 'text/html')]
date=response.getheader('date');
print date
取出响应头部的date的值。
希望本文所述对大家的Python程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: >
Python使用GET方法发送HTTP请求源码
如下的源码为Python使用GET方法发送HTTP请求源码。
另有HEAD/POST方法发送HTTP请求源码,请关注相关文章:
GET方法源码如下:
&&& import httplib
&&& conn = httplib.HTTPConnection(&www.python.org&)
&&& conn.request(&GET&, &/index.html&)
&&& r1 = conn.getresponse()
&&& print r1.status, r1.reason
&&& data1 = r1.read()
&&& conn.request(&GET&, &/parrot.spam&)
&&& r2 = conn.getresponse()
&&& print r2.status, r2.reason
404 Not Found
&&& data2 = r2.read()
&&& conn.close()
玩蛇网文章,转载请注明出处和文章网址:/code/other/o5792.html []
我要小额赞助,鼓励作者写出更好的教程↓↓↓】
玩蛇网Python QQ群,欢迎加入: ①
修订日期:日 - 17时17分05秒
发布自玩蛇网
我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
站长推荐:
Python学习与资源分享平台

我要回帖

更多关于 110网身份证查宾馆记录 的文章

 

随机推荐