我知道我的问题可能不太好。但作为一个蟒蛇新手,我有一个问题:
我用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)
但没有结果
谢谢
答案 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和标题。