前言:
我最近一直在hw值班超贊的圓形花紋筆刷,看著紅隊(duì)老板封殺不了的IP,我開始懷疑他們用了什么方法。
827的日子開始了
自動(dòng)更換代理ip常用的三種方法
1.使用第二個(gè)廣播ip配合ip魔盒
2.流量轉(zhuǎn)到 tor 代理
3.ip替換自定義代碼
本文主要講第三種方式(因?yàn)樽詈唵我沧畋阋耍?/p>
demo中使用的url是我的域名微票兒多線程注冊機(jī),所以沒有脫敏
環(huán)境
圖書館
隊(duì)列
系統(tǒng)
多個(gè)代理 ip 可用
(可選擇是否構(gòu)建)
根據(jù)個(gè)人需要,如果沒有穩(wěn)定的代理ip,建議自建。
文章主要使用代碼。如果使用自己的代理ip,可以改代碼。
開源就大佬
地址:
腳本的總體思路
1.讀取字典文件
2.驗(yàn)證讀取的代理ip是否可以使用
3.使用代理發(fā)送包
腳本分塊1.對(duì)于讀取字典文件,這個(gè)其實(shí)沒什么好說的
f = open('dir.txt', 'r')#dir為你的字典文件
for i in f:
print(i)
2.驗(yàn)證代理是否可用
`
def get_proxy():#通過api獲取數(shù)據(jù)的
while True:
proxy = requests.get("http://ip:5010/get/").json().get("proxy")#通過proxy_tools api進(jìn)行獲取數(shù)據(jù)
try:#如果報(bào)錯(cuò)就代表沒有代理ip 出現(xiàn)了問題
proxys = {
'http': 'http://' + proxy,
'https': 'https://' + proxy
}
a = requests.get("http://www.xxxx.cn/", proxies=proxys, timeout=1, verify=False).status_code#此處主要是驗(yàn)證,所以給一個(gè)可以訪問的網(wǎng)站就行
if a == 200:return proxys#如果訪問正常就代表代理可用返回代理ip
except :#調(diào)用delete_proxy刪除代理ip
delete_proxy(proxy)
def delete_proxy(proxy):#刪除代理ip
requests.get("http://p:5010/delete/?proxy={}".format(proxy))
通過get調(diào)用api獲取代理ip
由于無法使用代理會(huì)報(bào)錯(cuò)
所以在外層添加了一個(gè)無限循環(huán)。當(dāng)代理無法使用時(shí),會(huì)重新獲取,直到獲得可用的代理。
3.使用代理發(fā)送包
def req_proxy(url):
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/12.0 Safari/1200.1.25'}
proxy=get_proxy()
try:#超時(shí)就跳出,重新獲取代理ip
tar = requests.get(url, headers=headers, proxies=proxy, timeout=10, verify=False)
if tar.status_code != 404: # 篩選狀態(tài)碼

urls = {url+" Is status:"+str(tar.status_code)}
print(list(urls))
except :
pass
因?yàn)椴?,用最簡單的狀態(tài)碼判斷
完整代碼
上面實(shí)現(xiàn)了我想要的微票兒多線程注冊機(jī)3D Studio MAX,現(xiàn)在是時(shí)候組裝了
`
import requests
def get_proxy():
while True:
proxy = requests.get("http://xxx:5010/get/").json().get("proxy")
try:
proxys = {
'http': 'http://' + proxy,
'https': 'https://' + proxy
}
a = requests.get("http://xxx.org/get", proxies=proxys, timeout=1, verify=False).status_code
if a == 200:return proxys
except :
delete_proxy(proxy)
def delete_proxy(proxy):
requests.get("http://xxx:5010/delete/?proxy={}".format(proxy))
def req_proxy(url):
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/12.0 Safari/1200.1.25'}
proxy=get_proxy()
try:#超時(shí)就跳出,重新獲取代理ip
tar = requests.get(url, headers=headers, proxies=proxy, timeout=10, verify=False)
if tar.status_code != 404: # 篩選狀態(tài)碼
urls = {url+" Is status:"+str(tar.status_code)}
print(list(urls))
except :
pass
url="http://www.allbeard.cn/"
f = open('dir.txt', 'r')#dir為你的字典文件
for i in f:
req_proxy(url+i)
有兩個(gè)放映。以這個(gè)速度荷花筆刷下載2,跑完一個(gè)腳本就過年了(太慢了)。
多線程完整版
import requests, sys, threading
from queue import Queue
def get_proxy():
while True:
proxy = requests.get("http://xxx:5010/get/").json().get("proxy")
try:
proxys = {
'http': 'http://' + proxy,
'https': 'https://' + proxy
}
a = requests.get("http://xxxx.org/", proxies=proxys, timeout=1, verify=False).status_code
if a == 200:return proxys
except :
delete_proxy(proxy)
def delete_proxy(proxy):
requests.get("http://xxx:5010/delete/?proxy={}".format(proxy))
# 多線程實(shí)現(xiàn)掃描目錄
class DirScan(threading.Thread):
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
def run(self):
# 獲取隊(duì)列中的URL
while not self.queue.empty():
url = self.queue.get()
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_10) AppleWebKit/600.1.25 (KHTML, like Gecko) Version/12.0 Safari/1200.1.25'}
proxy=get_proxy()
try:#超時(shí)就跳出,重新獲取代理ip
tar = requests.get(url, headers=headers, proxies=proxy, timeout=10, verify=False)
if tar.status_code != 404: # 篩選狀態(tài)碼
urls = {url+" Is status:"+str(tar.status_code)}
print(list(urls))
except :
pass
def start(url, su):
queue = Queue()
f = open('dir.txt', 'r')
for i in f:
queue.put(url + i.rstrip('\n'))
# 多線程
threads = []
thread_count = int(su)
for i in range(thread_count):
threads.append(DirScan(queue))
for t in threads:
t.start()
for t in threads:
t.join()
if __name__ == "__main__":#入口
print('+------------------------------------------')
print('+ \033[34m不會(huì)聯(lián)盟 by beard \033[0m')
print('+ \033[34m工具名:隨機(jī)代理的目錄掃描工具 \033[0m')
print('+ \033[36m使用格式: python3 proxypath.py http://xxxx/ \033[0m')
print('+------------------------------------------')
try:
url = sys.argv[1]
except:
print("按照格式輸入 python3 proxypath.py http://xxxx/ ")
sys.exit()
count = 10
start(url, count)
代碼簡單,請(qǐng)輕噴