2017-01-20 6 views
-1

私はサイトにログインし、shoutbox.phpに投稿します。Python - ログインしてサイトとポスト

import urllib 
import urllib2 
login_data=urllib.urlencode({'username':'daniixxl','password':'steaua','submit':'Login'}) # replace username and password with filed name 
op = urllib.urlopen('http://myxz.org/takelogin.php',login_data) 
print op.read(100) 
url = 'http://myxz.org/shoutbox.php' 
data = urllib.urlencode({'shbox_text' : 'joe', 
         'sent' : 'yes'}) 
req2 = urllib2.Request(url, login_data) 

print data 

問題です:私は、これは試すあなたがリクエストを送信した後

+0

をshoutbox.phpする投稿しないで、サーバーがあなたに応答を送信する - あなたが得るかどうか確認します。多分あなたはエラーメッセージや他の情報を持つHTMLを得るでしょう。ほとんどのサーバーにログインするには、Cookieを使用する必要があります。Cookieなしで2回目のリクエストを送信しても、すでにログインしていることはサーバーに通知されません。 'requests'モジュールと' requests.Session() 'をうまく使います。 – furas

+0

これはhttp://stackoverflow.com/questions/10247054/http-post-and-get-with-cookies-for-authentication-in-python/10248432#10248432の複製です。セッションクッキーを確実にするために "build_opener"を使用してください保持された。 – ch7kor

+0

@furas Cookieをスムーズに処理するために外部のlibは必要ありません。 – ch7kor

答えて

1
from requests import session 




mesaj_postat = {'yupii iar'} 
logare = { 'username':'daniixxl', 
      'password':'steaua' 
      } 

with session() as sesiune: 
        resp = sesiune.post('http://myxz.org/takelogin.php',data=logare) 
        if "statusdetails" in resp.text: 
         print("Logare reusita") 
        else: 
         print("Logare nereusita") 
関連する問題