`
finux
  • 浏览: 202461 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

urllib2提交http post请求

阅读更多

urllib2实现是太强大,之前用c语言的curl库来实现post请求,觉着实太麻烦。

看了下urllib2的API文档,接着用它来模拟下xiami的登录,呵呵,就那么几行代码,简洁明了~

#!/usr/bin/python
#coding=utf-8

import urllib
import urllib2

def post(url, data):
	req = urllib2.Request(url)
	data = urllib.urlencode(data)
	#enable cookie
	opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
	response = opener.open(req, data)
	return response.read()

def main():
	posturl = "http://www.xiami.com/member/login"
	data = {'email':'myemail', 'password':'mypass', 'autologin':'1', 'submit':'登 录', 'type':''}
	print post(posturl, data)

if __name__ == '__main__':
	main()
 
3
0
分享到:
评论
2 楼 finux 2010-10-18  
greatghoul 写道
这里如何将登陆后的Cookie保存下来,这样才可以请求其它需要登陆才能访问的页面。

可以先把Cookie保存起来,然后下次请求时使用即可,试试下面的代码:
#!/usr/bin/python
#coding=utf-8

import urllib
import urllib2
import cookielib

def post(url, data):
	req = urllib2.Request(url)
	data = urllib.urlencode(data)
	#enable cookie
	cookiefile = "cookiefile"
	cookieJar = cookielib.MozillaCookieJar(cookiefile)
	opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar));
	response = opener.open(req, data)
	cookieJar.save()
	#print response.read()

	#second http request use cookie
	cookieJar = cookielib.MozillaCookieJar(cookiefile)
	cookieJar.load()
	url = "http://www.xiami.com"
	opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
	response = opener.open(url)
	print response.read()

def main():
	posturl = "http://www.xiami.com/member/login"
	data = {'email':'myemail', 'password':'mypass', 'autologin':'1', 'submit':'登 录', 'type':''}
	#print post(posturl, data)
	post(posturl, data)

if __name__ == '__main__':
	main()


1 楼 greatghoul 2010-10-18  
这里如何将登陆后的Cookie保存下来,这样才可以请求其它需要登陆才能访问的页面。

相关推荐

    python使用urllib2提交http post请求的方法

    本文实例讲述了python使用urllib2提交http post请求的方法。分享给大家供大家参考。具体实现方法如下: #!/usr/bin/python #coding=utf-8 import urllib import urllib2 def post(url, data): req = urllib2....

    python爬虫 urllib模块发起post请求过程解析

    在Python爬虫开发中,发起HTTP请求是常见的任务,其中POST请求常用于提交数据到服务器。本篇主要讲解使用urllib模块发起POST请求的过程,以爬取百度翻译为例,帮助理解这一操作。 首先,我们需要了解POST请求的基本...

    python做get和post请求

    - `urllib2.post()`:虽然`urllib2`模块没有直接提供POST方法,但可以通过创建带有数据的`Request`对象来模拟POST请求。 2. **httplib模块**: - `httplib.HTTPConnection.request('GET', url)`:在`httplibGet....

    pythonurllib2模块实例简介.pdf

    下面的代码展示了如何使用urllib2发送POST请求: ```python import urllib import urllib2 url = 'http://www.x.com/cgi-bin/register.cgi' values = {'name' : 'Michael Foord', 'location' : 'Northampton', '...

    pythonurllib2模块实例简介文.pdf

    除了简单的GET请求,urllib2还支持POST请求,这通常用于向服务器提交数据。例如,你可以使用`urllib.urlencode()`函数将字典类型的数据编码成URL编码格式,然后作为POST请求的数据传递给`Request`对象: ```python ...

    Python批量发送post请求的实现代码

    2. 批量发送POST请求:文档介绍了如何在Python中实现批量发送POST请求的功能。在真实场景中,这种需求可能出现在需要自动化测试、数据采集、接口调用等多个场景。文档提供了Java和Python两种语言的实现代码,对初学...

    Python爬虫基础之Urllib库

    Urllib 库的 Request 对象可以用来设置数据,并将其作为 POST 请求的参数。例如,以下代码可以将用户名和密码作为 POST 请求的参数: ``` import urllib import urllib2 data = urllib.urlencode({"username":"park...

    python利用urllib和urllib2访问http的GET/POST详解

    通过使用Python内置的`urllib`和`urllib2`库(后者仅限于Python 2.x版本),我们可以轻松地发送HTTP GET和POST请求,并获取服务器响应的数据。这两个库提供了丰富的功能,使得开发人员能够更加方便地与Web服务进行...

    python使用urllib2实现发送带cookie的请求

    本文实例讲述了python使用urllib2实现发送带cookie的请求。分享给大家供大家参考。具体实现方法如下: import urllib2 opener = urllib2.build_opener() opener.addheaders.append(('Cookie','cookiename=cookie...

    Python大数据之网络爬虫的post请求、get请求区别实例分析

    在Python中,我们可以使用`urllib2.Request`和`urllib.urlencode`来构造POST请求。 示例代码如下: ```python import urllib import urllib2 # 构造POST请求 params = {'account': 'jredu', 'pwd': ''} # ...

    Python网络编程中urllib2模块的用法总结

    对于POST请求,`urllib2.Request`允许传递数据字典,并通过`urllib.urlencode()`转换成URL编码格式: ```python import urllib import urllib2 url = 'http://www.example.com/' values = {'name': 'Michael Foord'...

    浅谈python3发送post请求参数为空的情况

    2. **POST请求与GET请求的区别**:虽然两者都可以用来发送数据,但POST请求更适合于发送大量的数据或者敏感数据,因为它不会将数据暴露在URL中。 3. **参数传递方式**:GET请求通常将参数附加在URL后面,而POST请求...

    python使用post提交数据到远程url的方法.docx

    2. **POST请求**:与GET请求不同,POST请求用于向服务器发送被置于请求体中的数据。这种请求方式更适用于需要用户提交表单数据的应用场景。 3. **URL编码**:由于URL中不能包含空格或其他特殊字符,因此需要对这些...

    python通过post提交数据的方法

    其中,POST请求是一种常见的方法,它主要用于向服务器提交数据。本篇文章将详细介绍如何使用Python发送POST请求,并提供一个具体的示例。 #### POST请求的基本概念 在HTTP协议中,POST是一种用于向指定资源提交...

    webqq, urllib2模拟登陆webqq接收发消息, 还有一个cli版本的在github上.zip

    在WebQQ的例子中,可能需要解析登录页面的HTML,提取隐藏字段,然后构造正确的POST请求。 4. **网络通信**:利用urllib2进行网络通信,接收和发送消息,需要理解HTTP协议,包括请求头、请求体、响应码和响应体等。 ...

    urllib3-1.26.12.tar.gz

    2. **请求参数设置**:在发起请求时,我们可以设置各种参数,如方法(GET/POST等)、URL、数据、头部信息等。 3. **响应处理**:收到服务器响应后,可以通过`.data`获取响应体,`.status`获取状态码,`.headers`...

    pythonget和post数据实现.pdf

    POST请求常用于向服务器发送数据,如表单提交,它的数据不会显示在URL中,而是作为HTTP请求体的一部分。在Python中,POST请求的实现稍有不同: ```python params = urllib.urlencode({'programe': 'python', 'age':...

Global site tag (gtag.js) - Google Analytics