[原创]分享一个自己写的免费代理获取器

用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个!

至于验证 我没写 可以自己捣鼓!

下载地址:https://www.123pan.com/s/5uP0Vv-Hjr8H

Katen Doe

Fiime分享

专业分享,共建知识殿堂

猜你喜欢

wave

按 ECS 键退出搜索