2014-06-08 2 views
0

내 질문이 정말 좋지 않을 수도 있습니다. 하지만 파이썬으로 새로운 사람으로 나는 질문이있다 :파이썬으로 내 프로필에 메시지를 보내는 방법

나는 내 페이지에 로그인 할 파이썬 코드 작성 :

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() 

을하고 지금 내 페이지에 연결 ... .

내가 사이트에 메시지를 보낼 때 내 변조 데이터입니다 :

가 어떻게 지금 파이썬 함께 인사를 보낼 수 있습니까? 코드를 완성하고 완료 방법을 알려주시겠습니까?

UPDATE

나는 그렇게처럼 내 코드를 변경 :

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

urllib을 사용하여 시작할 수 있지만, 당신은 사용 행복 할 것 requests. POST 방법 사용 방법 :

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

아주 간단하고 맞습니까? 사전을 사용하여 헤더, 쿠키 및 요청에 포함시킬 기타 항목을 정의 할 수 있습니다. 대부분의 요청은 단 한 줄의 코드 만 필요합니다.

EDIT1 : 나는 test.com 계정이 없지만이 스크립트를 사용하여 POST 방법을 테스트 해 볼 수 있습니다. 이 website이 양식에 제출 어떤 반향되며, 스크립트가 당신에게 동일한 응답 얻어야한다 :

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

EDIT2을 :

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에서를, 여기 당신이 볼 수 무엇을 어떻게 세션 개체를 사용하려면 :

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) 

세션 개체의 장점은 이전 응답의 쿠키와 헤더를 저장한다는 점입니다.

+0

하지만이 코드를 코드에 추가하면 작동하지 않습니다 ... 코드를 수정하는 방법을 알려주시겠습니까? 감사합니다 – MLSC

+0

업데이트를 참조하십시오 – MLSC

+0

작동하지 않는다고 말하면 응답을받지 못했습니까? 'post' 메쏘드를 사용하면'Response' 객체가 리턴됩니다. 저장하고 (예제에서했던 것처럼) 상태 코드 ('resp.status_code')를 살펴보십시오. 또한 [참조 페이지] (http://docs.python-requests.org/en/latest/)를 참조하십시오. 희망이 도움이됩니다. – Samba

관련 문제