Python爬虫-付费代理推荐和使用

付费代理的使用

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

1. 付费代理分类

付费代理分为两类:

  • 一类提供接口获取海量代理,按天或者按量收费,如讯代理。

  • 一类搭建了代理隧道,直接设置固定域名代理,如阿布云代理。

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

2. 讯代理

讯代理的代理效率较高,官网为 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 开头的方法即可。方法实现如下所示:

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,通过代理池接口即可获取到这些可用代理。

3. 阿布云代理

阿布云代理提供了代理隧道,代理速度快且非常稳定,其官网为 阿布云 - 为大数据赋能 。

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

  • 专业版,多个请求锁定一个代理 IP,海量 IP 资源池需求,近 300 个区域全覆盖,代理 IP 可连续使用 1 分钟,适用于请求 IP 连续型业务

  • 动态版,每个请求一个随机代理 IP,海量 IP 资源池需求,近 300 个区域全覆盖,适用于爬虫类业务

  • 定制版,灵活按照需求定制,定制 IP 区域,定制 IP 使用时长,定制 IP 每秒请求数

关于专业版和动态版的更多介绍可以查看官网:动态版HTTP隧道服务说明 | 阿布云 - 为大数据赋能。

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

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

其官网原理介绍如下:

  • 云代理通过代理隧道的形式提供高匿名代理服务,支持 HTTP/HTTPS 协议。

  • 云代理在云端维护一个全局 IP 池供代理隧道使用,池中的 IP 会不间断更新,以保证同一时刻 IP 池中有几十到几百个可用代理 IP。

  • 需要注意的是代理 IP 池中有部分 IP 可能会在当天重复出现多次。

  • 动态版 HTTP 代理隧道会为每个请求从 IP 池中挑选一个随机代理 IP。

  • 无须切换代理 IP,每一个请求一个随机代理 IP。

  • HTTP 代理隧道有并发请求限制,默认每秒只允许 5 个请求。如果需要更多请求数,请额外购买。

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

使用教程的官网链接为:HTTP隧道(动态版)Python 接入指南| 阿布云 - 为大数据赋能。教程提供了 requests、urllib、Scrapy 的接入方式。

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

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)

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

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 都会在变化,这就是动态版代理的效果。

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

4. 结语

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

最后,如果本文对您有帮助,可以给我点一个赞支持一下!

同时,如果你喜欢本系列爬虫文章,可以点个关注跟着我一起学习更多爬虫知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492820.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx高级配置详解

目录 一、网页的状态页 1、状态页的基本配置 2、搭配验证模块使用 3、结合白名单使用 二、nginx 第三方模块 1、echo模块 1.1 编译安装echo模块 1.2 配置echo模块 三、nginx变量 1、内置变量 2、自定义变量 四、自定义图标 五、自定义访问日志 1、自定义日志格式…

基于Java SSM框架实现高考填报信息系统项目【项目源码】

基于java的SSM框架实现高考填报信息系统演示 JAVA简介 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java serv…

hot100刷题记录-哈希

一、两数之和 题目:https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked 方法1:枚举 class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for id, num in enumerate(nums)…

C++ //练习 8.4 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中。

C Primer(第5版) 练习 8.4 练习 8.4 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中。 环境:Linux Ubuntu(云服务器&#xff09…

多条件查询展开收起

顶部筛选条件很多时&#xff0c;就需要对赛选条件进行分组&#xff0c;每组都要有展开收起&#xff0c;根据页面自定义&#xff0c;还需要显示收起查询中有几条查询中的内容 思路&#xff1a; 封装一个组件&#xff0c;利用插槽自定义查询条件和分组 // 子组件 <script se…

智能枪弹柜管理系统-智能枪弹管理系统DW-S306

随着社会的发展和治安形势的日益严峻&#xff0c;对于枪弹的管理变得尤为重要。传统的手工记录和存放方式已经无法满足现代化、高效化、安全化的需求。因此&#xff0c;智能枪弹柜管理系统应运而 生。 在建设万兆主干、千兆终端的监控专网的基础上&#xff0c;弹药库安全技术…

MySQL数据库进阶第四篇(视图/存储过程/触发器)

文章目录 一、视图简单介绍与基础语法二、视图的检查选项三、视图的更新四、视图的作用五、存储过程的概念与特点六、存储过程的 创建&#xff0c;调用&#xff0c;查看&#xff0c;删除七、存储过程 — 系统变量八、存储过程 — 用户定义变量九、存储过程 — 局部变量十、存储…

最便宜也能最安全:Positive SSL证书

PositiveSSL证书的优势 价格实惠&#xff1a;相较于其他品牌的SSL证书&#xff0c;PositiveSSL证书的价格更为亲民。这使得小型企业和个人网站也能够轻松采用SSL加密技术&#xff0c;提高网站的安全性。安全性能可靠&#xff1a;虽然价格便宜&#xff0c;但PositiveSSL证书在安…

CMake和VsCode调试的使用

目录 CMake使用 CMake下载 创建系统文件目录 MakeList编写规范 VsCode启动调试 添加配置文件 添加断点&#xff0c;启动调试 CMake使用 CMake下载 输入指令 sudo apt install cmake 安装cmake&#xff0c;使用 cmake -version可查看cmake的版本信息 创建系统文件目…

unity导航网格无法烘培到台阶和斜坡

如图是我在b站学Unity导航网格时建的一个示例场景&#xff0c;本场景使用的为棱长1m的立方体&#xff0c;读者可以以此为参照度量其他物体大小。 可见导航网格根本无法烘焙到斜坡和台阶上&#xff0c;为解决问题我做了不少尝试&#xff0c;调整最大坡度和步高都没办法解决问题…

图像复原天花板!IR开创性新作实现最佳视觉质量,修复更智能、更逼真

图像复原&#xff08;IR&#xff09;指在已知图像退化的原因和模型的情况下&#xff0c;通过一系列的逆过程来恢复出原始图像的过程。这是一个长期的低级视觉任务&#xff0c;也是图像处理领域的一个重要课题。 随着深度学习技术的发展&#xff0c;图像复原领域不断出现新的网…

鸿蒙开发—【扩展textinput组件】

扩展鸿蒙textinput组件&#xff0c;支持快速扩展展性&#xff0c;标题文本等&#xff0c;文本内容双向绑定、文本组件快速复用。 /*** 单选文本*/ Component export default struct DiygwInput{//绑定的值Link value:string;//未选中图标State labelImg: Resource $r(app…