前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >付费代理的使用

付费代理的使用

作者头像
崔庆才
发布于 2018-06-25 03:44:43
发布于 2018-06-25 03:44:43
4.1K00
代码可运行
举报
文章被收录于专栏:进击的Coder进击的Coder
运行总次数:0
代码可运行

相对免费代理来说,付费代理的稳定性更高。本节将介绍爬虫付费代理的相关使用过程。

一、付费代理分类

付费代理分为两类:

  • 一类提供接口获取海量代理,按天或者按量收费,如讯代理;
  • 一类搭建了代理隧道,直接设置固定域名代理,如阿布云代理。

本节分别以两家代表性的代理网站为例,讲解这两类代理的使用方法,

二、讯代理

讯代理的代理效率较高(作者亲测),官网为http://www.xdaili.cn/,如下图所示。

讯代理上可供选购的代理有多种类别,包括如下几种(参考官网介绍)。

  • 优质代理:它适合对代理IP需求量非常大,但能接受较短代理有效时长(10~30分钟)的小部分不稳定的客户。
  • 独享动态:它适合对代理IP稳定性要求非常高且可以自主控制的客户,支持地区筛选。
  • 独享秒切:它适合对代理IP稳定性要求非常高且可以自主控制的客户,可快速获取IP,地区随机分配。
  • 动态混拨: 它适合对代理IP需求量大、代理IP使用时效短(3分钟)、切换快的客户。
  • 优质定制:如果优质代理的套餐不能满足你的需求,请使用定制服务。

一般选择第一类别优质代理即可,这种代理的量比较大,但是其稳定性不高,一些代理不可用。所以这种代理的使用就需要借助于上一节所说的代理池,自己再做一次筛选,以确保代理可用。

读者可以购买一天时长来试试效果。购买之后,讯代理会提供一个API来提取代理,如下图所示。

比如,这里提取API为http://www.xdaili.cn/ipagent/greatRecharge/getGreatIp?spiderId=da289b78fec24f19b392e04106253f2a&orderno=YZ20177140586mTTnd7&returnType=2&count=20,可能已过期,在此仅做演示。

在这里指定了提取数量为20,提取格式为JSON,直接访问链接即可提取代理,结果如下图所示。

接下来我们要做的就是解析这个JSON,然后将其放入代理池中。

如果信赖讯代理的话,我们也可以不做代理池筛选,直接使用代理。不过我个人还是推荐使用代理池筛选,以提高代理可用几率。

根据上一节代理池的写法,我们只需要在Crawler中再加入一个crawl开头的方法即可。方法实现如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def crawl_xdaili(self):
        """
        获取讯代理
        :return: 代理
        """
        url = 'http://www.xdaili.cn/ipagent/greatRecharge/getGreatIp?spiderId=da289b78fec24f19b392e04106253f2a&orderno=YZ20177140586mTTnd7&returnType=2&count=20'
        html = get_page(url)
        if html:
            result = json.loads(html)
            proxies = result.get('RESULT')
            for proxy in proxies:
                yield proxy.get('ip') + ':' + proxy.get('port')

这样我们就在代理池中接入了讯代理。获取讯代理的结果之后,解析JSON,返回代理即可。

代理池运行之后就会抓取和检测该接口返回的代理,如果代理可用,那么分数就会被设为100,通过代理池接口即可获取到这些可用代理。

三、阿布云代理

阿布云代理提供了代理隧道,代理速度快且非常稳定,其官网为https://www.abuyun.com/,如下图所示。

阿布云代理主要分为两种:专业版和动态版,另外还有定制版(参考官网介绍)。

  • 专业版:多个请求锁定一个代理IP,海量IP资源池需求,近300个区域全覆盖,代理IP可连续使用1分钟,它适用于请求IP连续型业务。
  • 动态版:每个请求分配一个随机代理IP,海量IP资源池需求,近300个区域全覆盖,它适用于爬虫类业务。
  • 定制版:它可以灵活按照需求定制,定制IP区域,定制IP使用时长,定制IP每秒请求数。

关于专业版和动态版的更多介绍可以查看官网:https://www.abuyun.com/http-proxy/dyn-intro.html。

对于爬虫来说,我们推荐使用动态版,购买之后可以在后台看到代理隧道的用户名和密码,如下图所示。

整个代理的连接域名为proxy.abuyun.com,端口为9020,它们均是固定的,但是每次使用之后IP都会更改,该过程其实就是利用了代理隧道实现(参考官网介绍)。

  • 云代理通过代理隧道的形式提供高匿名代理服务,支持HTTP/HTTPS协议。
  • 云代理在云端维护一个全局IP池供代理隧道使用,池中的IP会不间断更新,以保证同一时刻IP池中有几十到几百个可用代理IP。
  • 需要注意的是,代理IP池中部分IP可能会在当天重复出现多次。
  • 动态版HTTP代理隧道会为每个请求从IP池中挑选一个随机代理IP。
  • 无须切换代理IP,每一个请求分配一个随机代理IP。
  • HTTP代理隧道有并发请求限制,默认每秒只允许5个请求。如果需要更多请求数,请额外购买。

注意,默认套餐的并发请求是5个。如果需要更多请求数,则须另外购买。

使用教程的官网链接为:https://www.abuyun.com/http-proxy/dyn-manual-python.html。教程提供了requests、urllib、Scrapy的接入方式。

现在我们以requests为例,接入代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests

url = 'http://httpbin.org/get'

# 代理服务器
proxy_host = 'proxy.abuyun.com'
proxy_port = '9020'

# 代理隧道验证信息
proxy_user = 'H01234567890123D'
proxy_pass = '0123456789012345'

proxy_meta = 'http://%(user)s:%(pass)s@%(host)s:%(port)s' % {
    'host': proxy_host,
    'port': proxy_port,
    'user': proxy_user,
    'pass': proxy_pass,
}
proxies = {
    'http': proxy_meta,
    'https': proxy_meta,
}
response = requests.get(url, proxies=proxies)
print(response.status_code)
print(response.text)

这里其实就是使用了代理认证,在前面我们也提到过类似的设置方法,运行结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
200
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.18.1"
  }, 
  "origin": "60.207.237.111", 
  "url": "http://httpbin.org/get"
}

输出结果的origin即为代理IP的实际地址。这段代码可以多次运行测试,我们发现每次请求origin都会在变化,这就是动态版代理的效果。

这种效果其实跟之前的代理池的随机代理效果类似,都是随机取出了一个当前可用代理。但是,与维护代理池相比,此服务的配置简单,使用更加方便,更省时省力。在价格可以接受的情况下,个人推荐此种代理。

四、结语

以上内容便是付费代理的相关使用方法,付费代理稳定性比免费代理更高。读者可以自行选购合适的代理。

崔庆才

静觅博客博主,《Python3网络爬虫开发实战》作者

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
梯度下降求极值,机器学习&深度学习
导数也叫导函数,或者微商,它是微积分中的重要基础概念,从物理学角度来看,导数是研究物体某一时刻的瞬时速度,比如你开车从家 8:00 出发到公司上班,9:00 到到达公司,这一个小时内的平均车速是 80km/h,而途中8:15:30这一时刻的速度,就被称为瞬时速度,此刻的速度可能是 100km/h,也可能是 20km/h。而从几何意义上来讲,你可以把它理解为该函数曲线在一点上的切线斜率。 导数有其严格的数学定义,它巧妙的利用了极限的思想,也就是无限趋近于 0 的思想。设函数 y=f(x) 在点 x0 的某个邻域内有定义,当自变量 x 在 x0 处有增量 Δx,(x0+Δx)也在该邻域内时,相应地函数取得增量 Δy=f(x0+Δx)-f(x0);如果 Δy 与 Δx 之比当 Δx→0 时极限存在,则称函数 y=f(x) 在点 x0 处可导,并称这个极限为函数 y=f(x) 在点 x0 处的导数记做 :
zhangjiqun
2024/12/14
990
梯度下降求极值,机器学习&深度学习
统计学习方法之线性回归法1.线性回归2.损失函数(Cost Function)3.梯度下降4.最小二乘法5.数据归一化6. 模型评估7.参考文献
1.线性回归 回归,统计学术语,表示变量之间的某种数量依存关系,并由此引出回归方程,回归系数。 线性回归(Linear Regression),数理统计中回归分析,用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 线性回归模型: ε表示误差项,也叫随机干扰项,即真实值和预测值之间的差异。ε服从均值为0的正态分布,其中只有一个自变量的情况称为一元线性回归,多个自变量的情况叫多元线性回归。 对模型设定的假设: 回归模型是正确设定的,即模型选择了正确的变量,且选
JasonhavenDai
2018/04/11
2K0
统计学习方法之线性回归法1.线性回归2.损失函数(Cost Function)3.梯度下降4.最小二乘法5.数据归一化6. 模型评估7.参考文献
从零开始深度学习(四):梯度下降法
文章首发于本人CSDN账号:https://blog.csdn.net/tefuirnever
我是管小亮
2020/04/20
8020
【机器学习】算法原理详细推导与实现(一):线性回归
今天我们这里要讲第一个有监督学习算法,他可以用于一个回归任务,这个算法叫做 线性回归
机器学习和大数据挖掘
2019/07/16
6870
深度挖掘梯度下降算法原理
深度学习的三个重要部分包括损失函数、优化算法以及激活函数。通常在深度学习的问题中都会针对某一问题定义相应的损失函数,然后使用优化算法找到使损失函数最小的权重,所以越快越准确的找到最优权重值对优化算法来说至关重要。梯度下降算法是一种比较经典的优化算法,也是目前使用较多的优化算法,今天我们来详细了解一下梯度下降算法的工作原理。注意前方可能有公式出没!!
深度学习与Python
2019/06/18
6970
第三篇:机器学习之代价函数和梯度下降
从隐层开始每个神经元是上一层逻辑回归的结果并且作为下一层的输入,篇幅限制,我们将在下一篇将详细介绍逻辑回归的公式与代码
ACM算法日常
2018/08/07
8580
第三篇:机器学习之代价函数和梯度下降
【技术分享】梯度下降算法
  梯度下降(GD)是最小化风险函数、损失函数的一种常用方法,随机梯度下降和批量梯度下降是两种迭代求解思路。
腾讯云TI平台
2020/01/17
9880
浅显易懂!「高中数学」读懂梯度下降的数学原理
敏捷(agile)是软件开发过程中的一个广为人知的术语。其背后的基本思想很简单:快速构建出来→发布它→获得反馈→基于反馈进行修改→重复这一过程。这种做法的目标是让产品亲近用户,并让用户通过反馈引导你,以实现错误最少的可能最优的产品。另外,改进的步骤也需要很小,并且也应该让用户能持续地参与进来。在某种程度上讲,敏捷软件开发过程涉及到快速迭代。而梯度下降的基本过程也差不多就是如此——尽快从一个解开始,尽可能频繁地测量和迭代。
机器之心
2019/04/29
7090
浅显易懂!「高中数学」读懂梯度下降的数学原理
回归与梯度下降法及实现原理
回归与梯度下降 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲。 用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka。大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积、房间的数量(几室几厅)、地 段、朝向等等,这些影响房屋
Angel_Kitty
2018/04/08
1.3K0
回归与梯度下降法及实现原理
回归预测之入门
最近一段时间再看斯坦福大学几期学习的教学视频,有百度首席工程师、百度大脑以及百度研究院的负责人吴恩达教授讲述,内容深入浅出,推荐想踏入机器学习领域的童鞋观看。这儿为了加深对知识的认知,在这儿整理出来跟大家分享交流(中间活血有一些纰漏希望大家指出改正)。这个系列主要想能够用数学去描述机器学习,想要学好机器学习,首先得去理解其中的数学意义,不一定要到能够轻松自如的推导中间的公式,不过至少得认识这些式子吧,不然看一些相关的论文可就看不懂了,这个系列主要将会着重于去机器学习的数学描述这个部分,将会覆盖但不一定局限于
昱良
2018/04/04
7120
回归预测之入门
线性回归和梯度下降模型
线性回归和梯度下降模型 概要 本文主要讲解线性回归模型的原理,并以python和paddlepaddle为例讲解怎么实现一个线性回归模型,并用matplotlib画出训练后的效果。 线性回归 机器学
用户1631416
2018/04/12
9830
线性回归和梯度下降模型
机器学习 101:一文带你读懂梯度下降
梯度下降无疑是大多数机器学习(ML)算法的核心和灵魂。我绝对认为你应该花时间去理解它。因为对于初学者来说,这样做能够让你更好地理解大多数机器学习算法是如何工作的。另外,想要培养对复杂项目的直觉,理解基本的概念也是十分关键的。
AI研习社
2019/07/12
4370
机器学习 101:一文带你读懂梯度下降
明月机器学习系列(五):从零动手实现梯度下降
我们从简单的线性模型入手,讲解了梯度下降是如何学习其中的参数的。而本篇主要是讲怎么从零开始,使用Python实现梯度下降算法。
明月AI
2021/10/28
5330
明月机器学习系列(五):从零动手实现梯度下降
【Pytorch基础】梯度下降算法
  上偏文章我们尝试用枚举法找到权重的最优取值,并限定区间为 0 到 4.1,步长为 0.1, 显然我们很快就能找到最优的权重。这是因为未知权重只有一个,复杂度为线性的。但如果模型为 y = f(w_1,w_2,w_3...,w_n,x), 有多个未知权重,如此一来即使你知道每个权重的取值在 [a,b] 内,枚举的时间复杂度也是 O((b-a)^n) 级别的。复杂度随权重数量指数级增长,这当然是不可接受的。
yhlin
2023/02/27
6320
【Pytorch基础】梯度下降算法
浅谈梯度下降与模拟退火算法
简单来说,梯度下降就像是从山顶出发,到达最低的谷底,但下山过程中可能误入歧途,走入不是最低的谷底,即局部最优。
唔仄lo咚锵
2022/11/30
8290
浅谈梯度下降与模拟退火算法
机器学习入门:梯度下降算法(上)
一个人 被困在山上,需要从山上下来 (i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。
小言从不摸鱼
2024/09/10
1020
机器学习入门:梯度下降算法(上)
【知识】线性回归和梯度下降算法,值得学习
小编邀请您,先思考: 线性回归的假设是什么?线性回归用来解决什么问题? 梯度下降算法怎么理解?梯度下降算法怎么改进? 实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积、卧室数量和
陆勤_数据人网
2018/02/26
8320
【知识】线性回归和梯度下降算法,值得学习
梯度下降法的三种形式BGD、SGD、MBGD及python实现
        梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent)。其中小批量梯度下降法也常用在深度学习中进行模型的训练。接下来,我们将对这三种不同的梯度下降法进行理解。 为了便于理解,这里我们将使用只含有一个特征的线性回归来展开。
Flaneur
2020/03/25
3.6K0
从梯度下降到拟牛顿法:详解训练神经网络的五大学习算法
选自 Neuraldesigner 作者:Alberto Quesada 机器之心编译 参与:蒋思源 在神经网络中,系统的学习过程一般是由训练算法所主导。而现如今有许多不同的学习算法,它们每一个都有不同的特征和表现。因此本文力图描述清楚五大学习算法的基本概念及优缺点,给读者们阐明最优化在神经网络中的应用。 问题形式化 神经网络中的学习过程可以形式化为最小化损失函数问题,该损失函数一般是由训练误差和正则项组成。误差项会衡量神经网络拟合数据集的好坏,也就是拟合数据所产生的误差。正则项主要就是通过给特征权重增加罚
机器之心
2018/05/07
1.8K0
从梯度下降到拟牛顿法:详解训练神经网络的五大学习算法
梯度下降算法
​ 在线性回归中,我们使用最小二乘法,能够直接计算损失函数最小值时的参数值,但是,最小二乘法有使用的限制条件,在大多数机器学习的使用场景之下,我们会选择梯度下降的方法来计算损失函数的极小值,首先梯度下降算法的目标仍然是求最小值,但和最小二乘法这种一步到位、通过解方程组直接求得最小值的方式不同,梯度下降是通过一种“迭代求解”的方式来进行最小值的求解,其整体求解过程可以粗略描述为,先随机选取一组参数初始值,然后沿着某个方向,一步一步移动到极小值点
@小森
2024/05/24
1070
梯度下降算法
推荐阅读
相关推荐
梯度下降求极值,机器学习&深度学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验