Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6920
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2022-12-20 17:00
文章分类
文章存档

2024年(1)

2023年(20)

我的朋友
最近访客

分类: Python/Ruby

2023-10-31 16:21:04

鉴于隧道代理确实好用,大家都会更愿意使用这一技术,但无论你去哪家HTTP代理服务提供商那各种对比,可以发现,隧道代理的成本确实比普通HTTP代理的成本高出不少,甚至很多HTTP代理服务提供商直接就没有隧道代理这产品。

img

需要成本控制的情况下,我们可以使用HTTP代理池子自己搭建隧道代理。

注意,我们这次的主题是要先有HTTP代理池子,如果没有,要么自己用免费的搞一个,要么直接去和HTTP代理服务提供商花米搞一个,这不难,就不展开说了。

不过建议的不要用免费的,可用率不大行耽误事,还容易踩各种坑,相信懂的都懂。

我们来说说今天的重点,有了HTTP代理池子以后,要如何搭建起来隧道代理?


img

其实不难。

1.安装库

先肯定我们安装了requests库。

pip install requests


2.搭建隧道

我这边用的是我常使用的青果网络的HTTP代理,具体你们可以替换成你们自己买的API地址。

import requests
import time


# HTTP代理池的API地址
proxy_api_url = ''


# 配置代理服务器的地址和端口
proxy_server = 'PROXY_IP'
proxy_port = PROXY_PORT


# 设置目标网站的URL
target_url = '目标网站'


# 函数用于获取HTTP代理并发起HTTP请求
def get_and_use_proxy():
    while True:
        try:
            # 获取HTTP代理
            response = requests.get(proxy_api_url)
            proxy_json = response.json()
            proxy = proxy_json[0]['proxy']


            # 发起HTTP请求,使用获取的代理
            response = requests.get(target_url, proxies={'http': f'http://{proxy_server}:{proxy_port}'})
    
            # 检查请求是否成功
            if response.status_code == 200:
                print(response.text)
            else:
                print(f'Request failed with status code: {response.status_code}')
        except Exception as e:
            print(f'Error: {str(e)}')


        # 等待10秒
        time.sleep(10)


# 创建并启动线程
proxy_thread = threading.Thread(target=get_and_use_proxy)
proxy_thread.start()


# 主线程可以继续执行其他任务


我们可以根据配置文件稍作修改。

当然实在整不明白,也不影响什么。实际工作中我们基本都是直接用有隧道代理服务提供商的产品的。自己整隧道,1来维护麻烦2来花时间花精力,对于有时限的项目来说不划算,无聊练手是可以。

阅读(200) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~