代理池的使用

代理池的使用

服务器会检测某个IP在单位时间内的请求次数,如果超过了某个阀值,那么服务器会直接拒绝,返回一些错误信息

代理的设置、代理池的维护、付费代理的使用、ADSL拨号代理的搭建方法

多种请求库的代理设置方法

代理池的维护

代理池的基本模块:存储模块、获取模块、检测模块、接口模块

存储模块:使用redis的有序集合,用来做代理的去重和状态标识

获取模块:此模块尽量从不同来源获取,尽量抓取高匿代理,并保存到数据库

检测模块:需要定时检测数据库中的代理,根据不同的检测结果来对代理设置不同的标识

借口模块:需要用API来提供对外服务的接口,接口通过连接数据库并通过web形式返回可用代理

在其他项目上使用代理池:

1.修改代理池:

将代理池检测的URL修改成需要爬取的网站,以便于把被该网站禁封掉的代理剔除掉,留下可用代理;

同时访问代理接口,接口设置为5555,访问http://127.0.0.1:5555/random,即可获取到可用代理

2.再定义一个函数来获取随机代理:

PROXY_POOL_URL = 'http://127.0.0.1:5555/random'

def get_proxy(self):
    '''从代理池获取代理'''
    try:
        response = requests.get(PROXY_POOL_URL)
        if response.status_code == 200:
            print("Get Proxy",response.text)
            return response.text
        return None
    except requests.ConnectionError:
        return None

如果为scrapy框架,在middleware.py中设置:

class ImageProxyMiddleware(object):
    def process_request(self,request,spider):
        proxy = requests.get(PROX_POOL_URL).text
        request.meta['proxy'] = proxy
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值