正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)

近日这样的诈骗链接在qq群传播

正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)_第1张图片

点进去是这样

正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)_第2张图片

按照他给的网址输入,会进入这样的网站

重点:下面这个网站被搞崩了,新的网站:http://www.dhyckg.cn/

因为网站源代码相同,所以直接更改url就行,可以直接使用。

正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)_第3张图片

可以看到,画面仿照的qq邮箱(甚至连大部分源代码都是),但是不同的是,在这个界面输入qq号和密码,信息会被窃取 ,进入骗子手中。(骗子很嚣张,大家可以进一步探索这个网站,具体内容就不剧透了)

看到骗子如此对待祖国的花朵,是可忍孰不可忍?我毅然决定尽自己的力量,给骗子添乱。

首先,我们需要一大串无效的QQ号。可以用已有的,也可以随机产生。(因为是捣乱,所以账号密码可以随便生成)

为了介绍split()函数,在此按已有一大堆无效QQ号进行操作。

正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)_第4张图片

(不要问我哪儿来的,当初随手下载的。。)(末尾附上)

观察文件,可以发现格式是“账号”+“----”+“密码”,所以我们可以掏出split(),对每一行的对象进行分割。

#保存文件中的每一行,返回一个列表
f=open('2万QQ小号.txt','r')
line=f.readlines()
#新建两个列表,对应账号和密码
names=list()
passwords=list()
#对于每一行,去除换行符\n,然后将账号和密码分隔开,分别添加到两个列表中
for i in line:
    i=i.replace('\n','')
    #此处如果不分两个变量x,y赋值,则会返回一个列表,而不是两个字符串
    x,y=i.split('----',1)
    names.append(x)
    passwords.append(y)

接下来就是重点:使用selenium自动填表单

首先导入所需库

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

定义打开浏览器的函数

(不是为了放后台自动运行的话,可以去掉无头模式chrome_options.add_argument('--headless'),观察程序的运行)


def Open():
    chrome_options=webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    #这里webdriver路径根据自己的位置修改
    driver=webdriver.Chrome(executable_path='D:\chromedriver91.exe',options=chrome_options)
    return driver

下面就是填充表单了。

首先定位表单,观察源代码,正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)_第5张图片

 我们发现QQ号在标签u,密码在标签p

然后定义填充表单的函数

#计数
count=0
#填充表单
def fill(driver,name,password):
    #新的url='http://www.dhyckg.cn/'
    url = "http://www.wmybu.cn/web/index.php?act=1/admin"
    driver.get(url)
    
    #找到标签u
    text1 = driver.find_element_by_id("u")
    #用name变量填充
    text1.send_keys(name)
    
    time.sleep(1)
    
    text2 = driver.find_element_by_id("p")
    text2.send_keys(password)

    #点击登录,提交表单
    driver.find_element_by_id("go").click()
    driver.quit()
    print('第{}次操作完毕!'.format(count+1))

 接下来使用for遍历列表,开始添乱!

for a in names:
    driver = Open()
    b=passwords[count]
    fill(driver,a,b)
    count+=1

 这里肯定有更简明的方法,为了容易理解(毕竟反诈骗是全民的事),使用最通俗的表述。

完整代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

f=open('2万QQ小号.txt','r')
line=f.readlines()
names=list()
passwords=list()
for i in line:
    i=i.replace('\n','')
    x,y=i.split('----',1)
    names.append(x)
    passwords.append(y)

count=0

def Open():
    path='D:\chromedriver91.exe'
    chrome_options=webdriver.ChromeOptions()
    driver=webdriver.Chrome(executable_path=path,options=chrome_options)
    return driver

def fill(driver,name,password):
    #新的url='http://www.dhyckg.cn/'
    url = "http://www.wmybu.cn/web/index.php?act=1/admin"
    driver.get(url)

    text1 = driver.find_element_by_id("u")
    text1.send_keys(name)
    
    time.sleep(1)
    
    text2 = driver.find_element_by_id("p")
    text2.send_keys(password)

    driver.find_element_by_id("go").click()
    driver.quit()
    print('第{}次操作完毕!'.format(count+1))

for a in names:
    driver = Open()
    b=passwords[count]
    fill(driver,a,b)
    count+=1
    

好了,具体就这样,最后pyinstaller打包(记得-w),放后台自动运行吧。

正义感爆棚的我今天又成功为一个诈骗网站添乱(selenium自动填表单教程)_第6张图片

(反诈骗是重要的,但是一定要爱护自己的CPU) 

qq小号:链接:https://pan.baidu.com/s/1VBiFRlNnvLcDoYBYrGJvKQ 

提取码:l7kh

你可能感兴趣的:(python,selenium,爬虫)