python - 从json解析它只选择最后一个元素?
问题描述
今天有人试图通过钓鱼网站窃取我的登录信息。所以我决定用随机的电子邮件和密码向那个网站发送垃圾邮件,我找到了一段代码,它似乎可以工作。代码:
import requests
import os
import random
import string
import json
while True:
try:
chars = string.ascii_letters + string.digits + '!@#$%^&*()'
random.seed = (os.urandom(1024))
url = 'http://domain/index.php'
names = json.loads(open('names.json').read())
for name in names:
name_extra = ''.join(random.choice(string.digits))
username = name.lower() + name_extra + '@yahoo.com'
password = ''.join(random.choice(chars) for i in range(8))
requests.post(url, allow_redirects=False, data={
'email': username,
'pass': password
})
print ('sending password %s and password %s' % (username, password))
except Exception as error:
print(error)
名称.json
[
"Liam",
"Noah",
"Alaric",
"Decker",
"Eliezer",
"Ramiro",
"Yisroel",
"Howard"
]
我的问题是,每次我运行程序时,它只会从 json 列表中选择姓氏。所以它会发送“Howard1”“Howard2”“Howard3”等等。它将忽略列表中的所有其他名称并选择最后一个..
解决方案
您显然会遍历names
列表并每次分配name_extra
新的。它保留的最后一个值是列表的姓氏。所以你应该像这样缩进下面的 4 个语句:
for name in names:
name_extra = ''.join(random.choice(string.digits))
username = name.lower() + name_extra + '@yahoo.com'
password = ''.join(random.choice(chars) for i in range(8))
requests.post(url, allow_redirects=False, data={
'email': username,
'pass': password
})
推荐阅读
- c - 如何将矩阵传递给打印它的函数?
- javascript - 重新加载 Commerce.js 结帐页面时出错(反应教程)
- python - Sprite 不想在 Pygame 中移动
- c# - 如何在 MOQ 中为 C# 中的 SendEmail 方法参数编写 UnitTest
- f# - 如何在 F# 的同一行上获取 Json 元素的字符串值
- r - R合并两个不同长度的数据帧,重复较短的行,直到第一个值发生变化
- google-chrome - Chrome 和网络串行 API。如何在不询问的情况下获得端口
- peewee - 具有多个连接和多个计数的 Peewee 选择查询
- powershell - 我们可以在部署时阻止 Azure LogicApp 触发器触发吗
- azure - Azure DevOps 团队日历缺少一天休假的用户