-3

「username.txt」と「password.txt」という 2 つのテキスト ファイルを使用するスクリプトを作成しました。私のスクリプトは、2 つのテキスト ファイルで指定されたデータを使用してログインを試みます。ログインに成功すると、HTTP 要求コード 200 が返され、失敗した場合はコード 400 が返されます。コードは最初の行のみを実行し、残りは実行しません。この問題を解決するにはどうすればよいですか。これが私のコードです。

import urllib, urllib2

user = open ('users.txt' , 'r')
password = open ('password.txt' , 'r')
pa = ''.join(password)

for users in user:
    login_data = pa + users
    base_url = 'http://mymail.com'       
# login action we want to post data to  
response = urllib2.urlopen(base_url)     
login_action = '/auth/login'   
login_action = base_url + login_action
response = urllib2.urlopen(login_action, login_data)
response.read()
print response.headers
print response.getcode()

スクリプトを実行したときの出力は次のとおりです。失敗するはずのユーザーを設定しましたが、コード 200 が表示されます。

Date: Mon, 29 Jul 2013 14:54:59 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
Set-Cookie: PHPSESSID=o3jlu86jgs7uj24fod107aps26; path=/
Cache-Control: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

200
4

1 に答える 1

-1

私がしなければならなかったのは、ループがネストされたループの先頭に戻り、.seek 機能を使用して、すべてのパスワードをロードして試してみることだけでした。

import urllib, urllib2

user = open ('users.txt' , 'r')
password = open ('password.txt' , 'r')

for users in user:
    password.seek(0)
    for pass_list in password:
        login_data = users + '\n' + pass_list
        print login_data

base_url = 'http://my-site.com'       
#login action we want to post data to  
response = urllib2.urlopen(base_url)     
login_action = '/auth/login'   
login_action = base_url + login_action
response = urllib2.urlopen(login_action, login_data)
response.read()
print response.headers
print response.getcode()
于 2013-07-30T19:13:32.033 に答える