python在python中使用请求发布数据

python在python中使用请求发布数据,python,login,http-post,python-requests,Python,Login,Http Post,Python Requests,如果我尝试登录到我的帐户,但未成功,那么我将在url源页面中使用短语重试。因此,我尝试编写python脚本登录到我的帐户并执行以下操作: 更新 postdata等是否有问题 我还坐在cookies上。如果我要这样做,第一步是打开Chrome(或者FF,如果你愿意的话)并发送请求 按F12键 点击那个特定的请求,在这里我只是刷新这个页面,对你来说,这是登录请求 你可以看到需要什么,总是有cookies,当你模仿请求时就使用这些cookies。有时候,仅仅复制和粘贴cookies是行不通的,如果

如果我尝试登录到我的帐户,但未成功,那么我将在url源页面中使用短语
重试
。因此,我尝试编写python脚本登录到我的帐户并执行以下操作:

更新 postdata等是否有问题


我还坐在cookies上。

如果我要这样做,第一步是打开Chrome(或者FF,如果你愿意的话)并发送请求

按F12键

点击那个特定的请求,在这里我只是刷新这个页面,对你来说,这是登录请求

你可以看到需要什么,总是有cookies,当你模仿请求时就使用这些cookies。有时候,仅仅复制和粘贴cookies是行不通的,如果是这样,你必须弄清楚这些cookies的每个字段的含义,然后自己制作一个


祝你好运。

你不想显示url,没有它很难吸引眼球:)

这里是我的尝试,让我知道它是否有效,或者请评论你在这里得到的错误

请注意以下几点:
-尝试在标题中使用用户代理
-需要在调用url后提取令牌(在以下情况下是第5行)

另外,请检查是否有特定的
内容类型
,如果是,请将其添加到标题中


希望有帮助:-)

也许需要一些饼干。@laike9m好的……你的意思是我没有错,是吗?没有对错,只是工作或不工作,你必须在它开始工作之前不断尝试。@MortezaLSC能给我url吗?回复时请在评论中注明我的名字。谢谢:-)Mohsin博士我真的很喜欢印度朋友。。。对不起,我不太喜欢显示url…谢谢。。。我以前做过。。。在那里我必须发布参数。。。但是我不知道为什么没有正式的联系请原谅我的耽搁。。。我已经检查过了,我坐在沙发上。所以请看更新…@MortezaLSC我想这没关系,使用请求会话非常方便。它能用吗?@MortezaLSC为什么不给我们看一下postresp
?返回代码是什么?我做:打印postresp,,,asnwer是:Thaaaaaaaaaaaaaaaaanxxxxxxxxxxxxx@MortezaLSC
session.get
是在整个过程中使用相同的会话-网站可能会对每个会话使用特定的令牌。所以
session.get
session.post在整个过程中使用相同的会话。不需要我们把饼干结转。甚至可以避免令牌被更改。另一方面,
requests.get
打开一个新的一次性会话altogther-因此所有cookie和令牌都会更改here@MortezaLSC不客气,很高兴我能帮上忙
token=...#by xpath
session=requests.Session('http://example.com')
response=session.get('http://example.com')
cook=session.cookies
postdata={'token':token, 'arg1':'', 'arg2':'', 'name[user]': user, 'name[password]':password, 'arg3': 'Sign in'}
postresp=requests.post(url='http://example.com/sth', cookies=cook, data=post_data)
print postresp.content
session=requests.Session()
headers={"User-Agent":"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36"}
session.headers.update(headers)
response=session.get('http://example.com').content #I added this line
tree=html.fromstring(cont)                         #and this line 
token=tree.xpath('//*[@class="blah blah blah"]')
#cook=session.cookies -- You don't need this if you are continuing with the same session
postdata={'token':token, 'arg1':'', 'arg2':'', 'name[user]': user, 'name[password]':password, 'arg3': 'Sign in'}
postresp=session.post(url='http://example.com/sth', data=post_data) # use session.post instead of making a completely new request
print postresp.content