-3

我创建了一个包含两个文本文件“username.txt”和“password.txt”的脚本。我的脚本尝试使用 2 个文本文件中提供的给定数据登录。我在 username.txt 文件中有 user1@mymail.com 到 user10@mymail.com,在 password.txt 中有 password1 到 password10。如果登录成功,它应该给我一个 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 回答