用python写的,主要是爬取的快代理的免费高匿名代理,这里直接放成品就行了,不要在代理模式下获取!
获取成功后,双击可以直接复制代理到剪切板!
源码:
import tkinter as tk import pyperclip from tkinter import messagebox import requests from bs4 import BeautifulSoup import threading class ProxyGUI: def __init__(self, master): self.master = master master.title('最新代理列表') self.proxy_listbox = tk.Listbox(master, height=30, width=60) self.proxy_listbox.pack(padx=10, pady=10) self.proxy_listbox.bind("<Double-Button-1>", self.copy_proxy) self.load_button = tk.Button(master, text='加载代理', command=self.load_proxies) self.load_button.pack(padx=10, pady=10) def load_proxies(self): self.proxy_listbox.delete(0, tk.END) self.load_button.config(state='disabled') loading_label = tk.Label(self.master, text='正在加载代理,请稍等...') loading_label.pack(padx=10, pady=10) proxies = [] for i in range(1, 31): url = f'https://www.kuaidaili.com/free/inha/{i}/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} try: response = requests.get(url, headers=headers, timeout=30) soup = BeautifulSoup(response.text, 'html.parser') table = soup.find('table', attrs={'class': 'table table-bordered table-striped'}) if table: rows = table.find_all('tr') for row in rows[1:]: columns = row.find_all('td') ip = columns[0].text.strip() port = columns[1].text.strip() protocol = columns[3].text.strip() proxy = f'{protocol}://{ip}:{port}' proxies.append(proxy) else: print('获取中...') except: print(f'无法访问{url}') loading_label.destroy() self.load_button.config(state='normal') if proxies: for proxy in proxies: self.proxy_listbox.insert(tk.END, proxy) messagebox.showinfo('代理列表', f'成功加载了{len(proxies)}个代理!') else: messagebox.showwarning('代理列表', '无法加载代理,请检查网络连接。') def copy_proxy(self, event): selection = self.proxy_listbox.curselection() if selection: proxy = self.proxy_listbox.get(selection[0]) pyperclip.copy(proxy) messagebox.showinfo('代理列表', f'已将代理{proxy}复制到剪贴板!') if __name__ == '__main__': root = tk.Tk() gui = ProxyGUI(root) root.mainloop()
这个默认是最新的代理IP,一次75个!
至于验证 我没写 可以自己捣鼓!