import urllib.request
import urllib
import urllib.error
import json
from requests.auth import HTTPDigestAuth
userlist = tuple(range(161320,161345))
passlist = ('qq')
for username in userlist:
for password in passlist:
url='URL'
encoded=requests.get(url, auth=HTTPDigestAuth('username', 'password'))
#data = { 'username': username, 'password': password }
encoded = urllib.parse.urlencode(data).encode('utf-8')
#encoded = json.dumps(data)
request = urllib.request.Request(url,encoded)
response = urllib.request.urlopen(request)
payload = response.read().decode()
if "You have successfully logged in" in payload:
print(f"{user} {password}")
无法正常工作,并显示以下错误:
回溯(最近通话最近): 文件“ C:/用户/管理员/桌面/ PYHTON / NEW SCRPT.py”,第4行,在 从请求导入HTTPDigestAuth ImportError:无法导入名称“ HTTPDigestAuth”
答案 0 :(得分:0)
欢迎使用StackOverflow!对于您遇到的错误,urllib
并不期望POST数据是普通字符串-需要将其编码为字节数组。您可以通过在发送之前对数据进行编码来解决此问题:
encoded = urllib.parse.urlencode(data).encode('utf-8')
请注意,这与urlencode
不同。只是用特殊代码替换了字符串中的特定字符,但结果仍然是普通字符串。
但是,正如@stovfl所建议的那样,使用非常流行的Requests库,用Python进行Web请求要容易得多。按照安装说明进行操作(具体取决于安装Python的方式,但是您可能只需要在命令提示符下键入pip install requests
),然后转到basic authentication示例,并使其适应您的用例。