如何使用python在我的个人资料中发送消息

时间:2014-06-08 13:45:03

标签: python autologin tampering

我知道我的问题可能不太好。但作为一个蟒蛇新手,我有一个问题:

我用python写了一个代码,让我登录到我的页面:

import urllib, urllib2, cookielib

email = 'myuser'
password = 'mypass'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'email' : email, 'password' : password})
opener.open('http://test.com/signin', login_data)
resp = opener.open('http://test.com/dashboard')
print resp.read()

现在我已连接到我的页面....

当我想向网站发送消息时,这是我的篡改数据:

我现在如何用python发送hello? 你可以完成代码并告诉我它是如何完成的吗?

更新

我改变了我的代码:

import requests

url1 = 'http://test.com/signin'
data1 = {
    'email': 'user',
    'password': 'pass',
    }
requests.post(url1, data=data1)

url2 = 'http://test.com/dashboard'
data2 = {
    'post_temp_id': '61jm5by188',
    'message': 'hello',
    }
requests.post(url2, data=data2)

但没有结果

谢谢

1 个答案:

答案 0 :(得分:1)

虽然您可以开始使用urllib,但您使用requests会更开心。如何使用POST方法:

import requests
resp = requests.post('http://test.com/dashboard', data={'post_temp_id': '61jm5by188', 'message': 'hello'})

非常简单,对吧?字典可用于定义标题,Cookie以及您希望包含在请求中的任何其他内容。大多数请求只需要一行代码。

EDIT1:我没有test.com帐户,但您可以尝试使用此脚本来测试POST方法。这个website将回显您在表单中提交的内容,脚本应该得到相同的响应:

import requests
resp = requests.post('http://hroch486.icpf.cas.cz/cgi-bin/echo.pl',
                     data={'your_name': 'myname',
                           'fruit': ['Banana', 'Lemon', 'Plum']})
idx1 = resp.text.index('Parsed values')
idx2 = resp.text.index('No cookies')
print resp.text[idx1:idx2]

根据您收到的HTML,您应该看到以下内容:

Parsed values</H2>
<UL>
<LI>fruit:
<UL compact type=square>
<LI>Banana
<LI>Lemon
<LI>Plum
</UL>
<LI>your_name = myname
</UL>
<H2>

EDIT2:如何使用会话对象:

from requests import Session
s = Session()
# Don't just copy this; set your data accordingly...
url1 = url2 = data1 = data2 = ...
resp1 = s.post(url1, data=data1)
resp2 = s.post(url2, data=data2)

会话对象的优点是它存储了之前响应中的任何cookie和标题。