快代理并发请求样例

快代理私密代理并发请求样例

import requests
import threading
import time
#快代理私密代理api
api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=xxxxxxxxx&num=10&signature=xxxxxxxxxxx&pt=1&sep=1"
username = ""
password = ""

success_count = 0
fail_count = 0
total_time = 0
total_time_1 = 0


def test_proxy(proxy):
    global success_count, fail_count, total_time, total_time_1
    proxies = {
        "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy},
        "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy}
    }

    target_url = "https://dev.kdlapi.com/testproxy"
    try:
        start_time = time.time()
        response = requests.get(target_url, proxies=proxies)
        end_time = time.time()
        total_time = end_time - start_time
        total_time_1 += end_time - start_time
        #判断响应状态码是否为200
        if response.status_code == 200:
            success_count += 1
            print(f"代理IP {proxy} 请求成功,响应码为 {response.status_code},响应耗时:{total_time},响应内容为:\n{response.text}")
        else:
            fail_count += 1
            print(f"代理IP {proxy} 请求失败,响应码为 {response.status_code},响应耗时:{total_time}")
    except Exception as e:
        fail_count += 1
        print(f"代理IP {proxy} 请求失败,错误信息为:{e}")


if __name__ == '__main__':
    #获取api返回的IP,并进行分隔
    proxy_list = requests.get(api_url).text.split()
    #创建线程池
    threads = []
    #遍历ip池内的全部ip,并为其创建线程
    for proxy in proxy_list:
        t = threading.Thread(target=test_proxy, args=(proxy,))
        threads.append(t)
        t.start()
    #进程守护,等待其他进程完成再继续执行
    for t in threads:
        t.join()

    success_rate = success_count / (success_count + fail_count)
    average_time = total_time_1 / (success_count + fail_count)

    print(f"请求成功次数:{success_count},请求失败次数:{fail_count},成功率:{success_rate:.2%},平均耗时:{average_time:.2f}秒")

隧道代理并发请求样例

import requests
import time
from concurrent.futures import ThreadPoolExecutor

requests.packages.urllib3.disable_warnings()

tunnel = "xxxxxxxxxx:15818"

# 用户名密码方式
username = "xxxxxxx"
password = "xxxxxxx"
proxies = {
    "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": tunnel},
    "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": tunnel}
}

headers = {
    "Connection": "close",
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
}

total_count = 0
error_count = 0
success_count = 0
time_use = 0
handling = 0



def fn():
    global success_count
    global error_count
    global time_use
    global handling
    for i in range(1):
        try:
            target_url = 'https://dev.kdlapi.com/testproxy'
            start_time = time.time()
            response = requests.get(target_url, proxies=proxies, headers=headers, verify=False)
            end_time = time.time()
            one_time_use = end_time - start_time
            time_use += one_time_use
            if response.status_code == 200:
                print(('proxy_ip: %s, http_status: %s,time: %s,text:%s ' % (
                    tunnel, response.status_code, one_time_use,response.text)))
                success_count += 1
            else:
                print(('proxy_ip: %s, http_status: %s,time: %s,text:%s ' % (
                    tunnel, response.status_code, one_time_use, response.text)))
                error_count += 1
        except Exception as e:
            print(e)
            handling += 1


if __name__ == '__main__':
    # 创建线程池
    with ThreadPoolExecutor(10) as t:
        # 理论最大线程数
        for i in range(10):
            # 线程循环次数
            # time.sleep(1)
            t.submit(fn)
    # 等待线程池中的任务全部执行完毕. 才继续执行(守护)
    print(
        """总请求数:%(sum_count)s,成功次数:%(success_count)s,\n状态码非200次数:%(error_count)s,  平均响应时间:%(avg_time_use).3fs,\n异常捕获:%(handling)s,\n异常占比:%(Abnormal_proportion)s,""" \
        % {"sum_count": success_count + error_count + handling,
           "success_count": success_count,
           "error_count": error_count,
           "avg_time_use": time_use / (error_count + success_count),
           "handling": handling,
           "Abnormal_proportion": handling / (success_count + error_count + handling),
           }

    )

网站官网:https://www.kuaidaili.com/?ref=8obu0xlavxjf

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值