一、为什么要使用代理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代理池的构建相关推荐

  1. Python爬虫-IP代理池和代理池设计

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:小小科 ( 想要学习Python?Python学习交流 ...

  2. python爬虫ip代理池_爬虫教程-Python3网络爬虫开发——IP代理池的维护

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 准备工作 要实现IP代理池我们首先需要成功安装好了 Redis 数据库并启动服务,另外还需要安装 Aiohttp.Requests.RedisPy.PyQ ...

  3. 手把手教你用Python搭建IP代理池,轻松破解请求频率限制反爬虫~

    我们所写的爬虫,它对服务器发出的网络请求频率要比正常用户的高的多,从而开发者可以将请求频率过高的用户视为爬虫程序,从而来限制爬虫程序. 今天志斌就来给大家分享一下,如何用Python搭建一个IP代理池 ...

  4. python爬虫ip代理没有作用_可能是一份没什么用的爬虫代理IP指南

    写在前面 做爬虫的小伙伴一般都绕不过代理IP这个问题. PS:如果还没遇到被封IP的场景,要不你量太小人家懒得理你,要不就是人家压根不在乎... 爬虫用户自己是没有能力维护一系列的代理服务器和代理IP ...

  5. 手把手教你用Python搭建IP代理池

    今天给大家分享一下,如何用Python搭建一个IP代理池,来破解服务器通过对用户请求频率进行限制的反爬虫. 01 原理 因为客户端的IP地址是唯一的,所以开发者便将IP地址作为客户端的身份标识. 服务 ...

  6. python开源ip代理池_[技术]基于python实现的短效代理ip池程序

    我们在写爬虫程序的时候,或者是抓取数据的时候,遇到一些发爬不是很厉害的网站,一般都是通过代理ip来实现绕过对方的反爬措施. 一般好的代理都是需要付费的,免费的代理速度慢,而且难找.市面上也有很多对应的 ...

  7. python 爬虫ip代理

    新建proxy_list.txt文本,一行一个ip代理ip地址,必要情况下可以加上端口号 import requestsurl = 'www.920vip.net'headers = {'User-A ...

  8. python爬虫面试代理池_python - 如何为爬虫构建代理池

    问 题 为了避免爬虫被封 IP ,网上搜索教程说需要建立代理池.但是付费代理都好贵...不过好在网上已经有不少免费提供代理的网站了.因此,我打算写个爬虫去获取这些免费 IP - 策略步骤 用种子关键词 ...

  9. easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。

    现在越来越多的人在工作中使用到爬虫,各个网站的反爬虫机制也越来越严格,下面就自己构建一个代理ip池.无私分享全套Python爬虫干货,如果你也想学习Python,@ 私信小编获取 一.手动更新ip池 ...

最新文章

  1. Access restriction required library rt.jar
  2. axios ajax和flask传输json数据
  3. visual studio intergration
  4. 微信打开网页下载东西时如何调用其他浏览器下载
  5. java鼠标监听事件_JAVA 鼠标事件监听ACTIONLISTENER
  6. python基础知识三——try与except处理异常语句
  7. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序
  8. 【NOIP2017】逛公园【最短路DAG】【dp】【拓扑排序】
  9. 三个实用的提升网页性能技巧
  10. 前端学习(1713):前端系列javascript之运行
  11. 别再无脑wwm了!在下游任务中不一定有效!
  12. 关于c语言的数据类型常量的理解
  13. php访问日记在哪,nginx访问日志在哪里
  14. 2018浙大计算机考研经验,考研经验2018中科大计算机考研第一398分初复试经验诚挚分享.docx...
  15. 漫画:什么是二叉堆?
  16. Translate插件的有道翻译
  17. 合宙 air720 模块通过串口助手连接到阿里云 IOT
  18. 【总结】从0到1的项目经历
  19. 装机记录Win10专业版可以做的事……
  20. 远程连接docker中的SQL Server

热门文章

  1. windows10多用户登录问题
  2. Finebi在linux中的安装与运行
  3. Referrer Policy
  4. CPU关于x86、x86_64x64、amd64和arm64以及aarch64的区别
  5. python读取视频里面爱豆出现的时间_计算任意视频中各人物的出镜时间(附Python实现)...
  6. mangle nat filter
  7. 二级联动怎么实现mysql_怎样实现二级联动
  8. liquibase常见操作
  9. 怎么给视频配音好听?这些好方法快学起来
  10. 安卓逆向-盲狙加密方法 | 安卓/JAVA 常用API查询网站