Python模仿POST提交HTTP数据及使用Cookie值的方法
作者:shichen2014 时间:2022-05-04 04:37:35
本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下:
方法一
如果不使用Cookie, 发送HTTP POST非常简单:
import urllib2, urllib
data = {'name' : 'www', 'password' : '123456'}
f = urllib2.urlopen(
url = 'https://www.jb51.net/',
data = urllib.urlencode(data)
)
print f.read()
当使用Cookie时, 代码变得有些复杂:
import urllib2
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)
f = opener.open('http://www.xxxx.net/?act=login&name=user01')
data = '<root>Hello</root>'
request = urllib2.Request(
url = 'http://www.xxxx.net/?act=send',
headers = {'Content-Type' : 'text/xml'},
data = data)
opener.open(request)
第一次 open() 是进行登录. 服务器返回的 Cookie 被自动保存在 cookies 中, 被用在后来的请求.
第二次 open() 用 POST 方法向服务器发送了 Content-Type=text/xml 的数据. 如果你不创建一个 Request, 而是直接使用 urlopen() 方法, Python 强制把 Content-Type 改为 application/x-www-form-urlencoded.
方法二
用urllib2库,带Cookie请求URL页面
例1:
import urllib2
opener = urllib2.build_opener()
opener.addheaders.append(('Cookie', 'cookiename=cookievalue'))
f = opener.open("http://example.com/")
例2:
import urllib2
import urllib
from cookielib import CookieJar
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
# input-type values from the html form
formdata = { "username" : username, "password": password, "form-id" : "1234" }
data_encoded = urllib.urlencode(formdata)
response = opener.open("https://page.com/login.php", data_encoded)
content = response.read()
希望本文所述对大家的Python程序设计有所帮助。
标签:Python,POST,HTTP,Cookie
0
投稿
猜你喜欢
Python中设置变量访问权限的方法
2023-09-13 15:42:15
python 容器总结整理
2021-03-20 16:52:08
IE6下的CSS BUG枚举
2010-06-11 10:45:00
JavaScript声明变量的这四兄弟(var、let、function、const)
2024-05-09 15:03:05
python必备库Matplotlib画图神器
2021-03-29 21:16:08
Pytorch 如何加速Dataloader提升数据读取速度
2023-11-12 00:00:32
Python中一些不为人知的基础技巧总结
2023-07-19 21:59:42
GoFrame代码优化gconv类型转换避免重复定义map
2024-04-27 15:32:04
python3.4中清屏的处理方法
2023-11-14 04:09:21
python如何使用jt400.jar包代码实例
2021-05-07 03:50:46
使用python实现画AR模型时序图
2021-07-03 01:11:08
Python中encode()方法的使用简介
2023-09-22 15:26:38
Python用requests模块实现动态网页爬虫
2022-10-15 16:27:06
带你一文读懂Python垃圾回收机制
2022-03-03 11:58:03
python怎么自定义捕获错误
2022-05-25 02:57:35
JS画5角星方法介绍
2024-05-13 09:06:36
在数据库中自动生成编号的实现方法分享
2024-01-23 03:02:04
VuePress使用Algolia实现全文搜索
2024-04-28 09:29:56
PHP addslashes()函数讲解
2023-06-04 04:28:24
解决Python数据可视化中文部分显示方块问题
2021-01-27 03:53:36