Python爬虫--IP代理池的构建
一、为什么要使用代理IP
1.爬虫的时候,被爬网站是有反爬虫机制的,如果使用一个IP反复访问一个网页,就容易被出现IP限制,无法再对网站进行访问,这时就需要用到代理IP。
2.如果工作任务量大,抓取速度快,目标服务器会容易发现,所以就需要用代理IP来换IP后再抓取。
3.爬虫在抓取一个网站数据的时候,有非常大的几率会被拉黑封锁。使用代理IP更换不同IP,对方网站每次都以为是新用户,自然就没有拉黑的风险。
我们用代理IP就是为了隐藏自身IP,防止自身的IP被封锁。
作者:IPIDEA全球HTTP
链接:https://www.zhihu.com/question/277530486/answer/1801329534
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
二、实例
1、IP代理的构建
import urllib.request
ip = "58.19.62.171:4287"
proxy = urllib.request.ProxyHandler({"http": ip})
opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)
urllib.request.install_opener(opener)
url = "http://www/baidu.com"
data1 = urllib.request.urlopen(url).read()
data = data1.decode("utf-8", "ignore")
print(len(data))
fh = open("C:\\Users\\阿娇啊\\Desktop\\a\\ip_baidu.html", "wb")
fh.write(data1)
fh.close()
2、IP代理池的构建
第一种方式:将已有代理IP放在列表里,用random.choice方式随机选取,此方法适用于IP代理池稳定的情况
import random
import urllib.request
ip_pools = ["xxx", "xxx", "xxx"]
def ip(ip_pools):this_ip = random.choice(ip_pools)proxy = urllib.request.ProxyHandler({"http": this_ip})opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)urllib.request.install_opener(opener)
for i in range(0,3):try:ip(ip_pools)url = "http://www.baidu.com"data1 = urllib.request.urlopen(url).read()data = data1.decode('utf-8', 'ignore')fh = open("C:\\Users\\阿娇啊\\Desktop\\a\\ip_baidu_"+str(i)+".html", "wb")except Exception as err:print(err)
第二种方式:以获取代理IP接口的形式
如以大象代理接口为例,用接口调用的形式获取ip,其中tid为订单号,num为获取代理IP的数量,foreign=only为国外ip
this_ip = urllib.request.urlopen("http://tvp.daxiangdaili.com/ip/?tid=559126871522487&num=1&foreign=only")
注:使用IP代理池,需使用try……except,因为代理IP一般不稳定,容易失效
Python爬虫--IP代理池的构建相关推荐
- Python爬虫-IP代理池和代理池设计
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:小小科 ( 想要学习Python?Python学习交流 ...
- python爬虫ip代理池_爬虫教程-Python3网络爬虫开发——IP代理池的维护
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 准备工作 要实现IP代理池我们首先需要成功安装好了 Redis 数据库并启动服务,另外还需要安装 Aiohttp.Requests.RedisPy.PyQ ...
- 手把手教你用Python搭建IP代理池,轻松破解请求频率限制反爬虫~
我们所写的爬虫,它对服务器发出的网络请求频率要比正常用户的高的多,从而开发者可以将请求频率过高的用户视为爬虫程序,从而来限制爬虫程序. 今天志斌就来给大家分享一下,如何用Python搭建一个IP代理池 ...
- python爬虫ip代理没有作用_可能是一份没什么用的爬虫代理IP指南
写在前面 做爬虫的小伙伴一般都绕不过代理IP这个问题. PS:如果还没遇到被封IP的场景,要不你量太小人家懒得理你,要不就是人家压根不在乎... 爬虫用户自己是没有能力维护一系列的代理服务器和代理IP ...
- 手把手教你用Python搭建IP代理池
今天给大家分享一下,如何用Python搭建一个IP代理池,来破解服务器通过对用户请求频率进行限制的反爬虫. 01 原理 因为客户端的IP地址是唯一的,所以开发者便将IP地址作为客户端的身份标识. 服务 ...
- python开源ip代理池_[技术]基于python实现的短效代理ip池程序
我们在写爬虫程序的时候,或者是抓取数据的时候,遇到一些发爬不是很厉害的网站,一般都是通过代理ip来实现绕过对方的反爬措施. 一般好的代理都是需要付费的,免费的代理速度慢,而且难找.市面上也有很多对应的 ...
- python 爬虫ip代理
新建proxy_list.txt文本,一行一个ip代理ip地址,必要情况下可以加上端口号 import requestsurl = 'www.920vip.net'headers = {'User-A ...
- python爬虫面试代理池_python - 如何为爬虫构建代理池
问 题 为了避免爬虫被封 IP ,网上搜索教程说需要建立代理池.但是付费代理都好贵...不过好在网上已经有不少免费提供代理的网站了.因此,我打算写个爬虫去获取这些免费 IP - 策略步骤 用种子关键词 ...
- easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。
现在越来越多的人在工作中使用到爬虫,各个网站的反爬虫机制也越来越严格,下面就自己构建一个代理ip池.无私分享全套Python爬虫干货,如果你也想学习Python,@ 私信小编获取 一.手动更新ip池 ...
最新文章
- Access restriction required library rt.jar
- axios ajax和flask传输json数据
- visual studio intergration
- 微信打开网页下载东西时如何调用其他浏览器下载
- java鼠标监听事件_JAVA 鼠标事件监听ACTIONLISTENER
- python基础知识三——try与except处理异常语句
- 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序
- 【NOIP2017】逛公园【最短路DAG】【dp】【拓扑排序】
- 三个实用的提升网页性能技巧
- 前端学习(1713):前端系列javascript之运行
- 别再无脑wwm了!在下游任务中不一定有效!
- 关于c语言的数据类型常量的理解
- php访问日记在哪,nginx访问日志在哪里
- 2018浙大计算机考研经验,考研经验2018中科大计算机考研第一398分初复试经验诚挚分享.docx...
- 漫画:什么是二叉堆?
- Translate插件的有道翻译
- 合宙 air720 模块通过串口助手连接到阿里云 IOT
- 【总结】从0到1的项目经历
- 装机记录Win10专业版可以做的事……
- 远程连接docker中的SQL Server
热门文章
- windows10多用户登录问题
- Finebi在linux中的安装与运行
- Referrer Policy
- CPU关于x86、x86_64x64、amd64和arm64以及aarch64的区别
- python读取视频里面爱豆出现的时间_计算任意视频中各人物的出镜时间(附Python实现)...
- mangle nat filter
- 二级联动怎么实现mysql_怎样实现二级联动
- liquibase常见操作
- 怎么给视频配音好听?这些好方法快学起来
- 安卓逆向-盲狙加密方法 | 安卓/JAVA 常用API查询网站