爬虫开发04--代理IP
代理IP
- 反爬机制:检测请求的ip在单位时间内,请求访问的次数;超过设定的阈值,服务器拒绝请求的访问;--即封IP
- 反反爬策略:使用代理进行请求的发送;
- 代理:破解封IP的反爬机制;
- 代理服务器:实现IP伪装
- 在本机和web服务器间,搭建了一个中转桥梁,本机不直接发送请求到web服务器;
- 本机向代理服务器发起请求,代理服务器会把请求中转发送给web服务器;web服务器响应的数据,由代理服务器转发给本机;
- 代理作用:
- 可以突破自身IP访问的限制,不会因为请求多被封IP;
- 隐藏自身真实的IP,避免被攻击;
- 国内免费IP代理网站:
- 全网代理IP(免费) :http://www.goubanjia.com/
代理名称 | 状态 | 更新速度 | 可用率 | 地址 |
---|---|---|---|---|
无忧代理 | √ | ★ | * | 地址 |
66代理 | √ | ★★ | * | 地址 |
西刺代理 | 已关闭 | —— | —— | 地址 |
全网代理 | √ | ★ | * | 地址 |
快代理 | √ | ☆ | * | 地址 |
代理盒子 | √ | ★★★ | * | 地址 |
云代理 | √ | ★ | * | 地址 |
IP海 | 已关闭 | —— | —— | 地址 |
免费代理库 | √ | ☆ | * | 地址 |
89代理 | √ | ☆ | * | 地址 |
西拉代理 | √ | ★★ | * | 地址 |
- 代理IP的类型:选择错了,也会报错
- http:应用到http协议对应的url中;
- https:应用到https协议对应的url中;
- 代理IP的匿名度:
- 透明:web服务器知道该次请求使用了代理,也知道请求对应的真实ip;
- 匿名:知道使用了代理,但不知道真实ip;
- 高匿:不知道使用了代理,也不知道真实ip;
1、检测代理IP是否可用
1)访问代理ip地址,来检测代理ip是否可以能访问;(能够访问,但是不一定能代理成功)
# 检测代理IP是否能访问import requests# 访问代理IP地址
get_url = 'http://1.198.177.74:4225'
response = requests.get(get_url)
print(response.text)
print(response.status_code)if response.status_code == 200:print(f"该代理IP可用:{get_url}")
else:print(f"该代理IP不可用:{get_url}")
输出结果:
:4225
200
该代理IP可用:http://1.198.177.74:4225
2)telnet ip地址,查看是否可以telnet成功
import telnetlibdef test_ip(ip,port):try:telnetlib.Telnet(ip,port,timeout=2)print("ip "+ip+":"+port+" yes")except:print("ip "+ip+":"+port+" ---")ip_list = ["222.74.202.227:9999","61.135.185.152:80","180.109.124.82:4232","1.198.177.74:4225","58.218.200.229:12907"
]for ip_str in ip_list:ip_arr = ip_str.split(":")test_ip(ip_arr[0], ip_arr[1])pass
输出结果:
ip 222.74.202.227:9999 yes
ip 61.135.185.152:80 yes
ip 180.109.124.82:4232 ---
ip 1.198.177.74:4225 yes
ip 58.218.200.229:12907 yes
显示访问IP的地址:
访问的目标HTTP页面:targetUrl = "http://httpbin.org/ip"
访问的目标HTTPS页面:targetUrl = "https://httpbin.org/ip"
3)检查代理IP是否可用?
import requests
import random
import timehttp_ip = ['167.172.184.166:46488','112.111.217.125:9999','186.248.170.82:53281'
]for ip_proxy in http_ip:try:# ip_proxy = random.choice(http_ip)proxy_ip = {'http': ip_proxy,'https': ip_proxy,}print('使用代理的IP:', proxy_ip)response = requests.get("http://httpbin.org/ip", proxies=proxy_ip, timeout = 10).textprint(response)print('当前IP有效√√√')time.sleep(2)print('******************************************************')except Exception as e:print(e.args[0])print('当前IP无效✖✖✖')print('******************************************************')
输出结果:
使用代理的IP: {'http': '123.163.121.16:9999', 'https': '123.163.121.16:9999'}
HTTPConnectionPool(host='123.163.121.16', port=9999): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000161E9A40700>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')))
当前IP无效✖✖✖
******************************************************
爬虫开发04--代理IP相关推荐
- 代理ip怎么使用_爬虫如何使用代理ip解决封禁?
爬虫如何使用代理ip解决封禁? 随着大数据时代的到来,很多做爬虫要用到代理IP,爬虫已经成了获取数据的必不可少的方式,在使用爬虫多次爬取同一网站时,经常会被网站的IP反爬虫机制给禁掉,为了解决封禁 I ...
- python使用代理爬虫_python爬虫requests使用代理ip
python爬虫requests使用代理ip 一.总结 一句话总结: a.请求时,先将请求发给代理服务器,代理服务器请求目标服务器,然后目标服务器将数据传给代理服务器,代理服务器再将数据给爬虫. b. ...
- python 爬虫如何使用代理IP
python3 爬虫如何使用代理IP 前言 众所周知,爬虫速度过快,频繁访问都会被封IP,怎么解决这个问题呢?再去换一台设备?先不说数据是否同步,仅仅换个设备的成本就不低,这个时候就需要代理IP了.以 ...
- 怎样使用python爬虫获得免费代理IP
怎样使用python爬虫获得免费代理IP 进行爬取和测试有效性 总结 爬虫一直是python使用的一个重要部分,而许多网站也为此做了许多反爬措施,其中爬虫访问过于频繁直接封ip地址也作为一种" ...
- Python3网络爬虫开发实战,IP代理池的维护
我们在上一节了解了代理的设置方法,利用代理我们可以解决目标网站封 IP 的问题,而在网上又有大量公开的免费代理,其中有一部分可以拿来使用,或者我们也可以购买付费的代理 IP,价格也不贵.但是不论是免费 ...
- 【Redis】孔夫子旧书网爬虫接入芝麻代理IP:代理IP利用效率最大化
背景: 之前用过芝麻IP,写过这几篇文章 <[Python]芝麻HTTP代理系列保姆级全套攻略(对接教程+自动领取每日IP+IP最优算法)> <[Python]记录抓包分析自动领取芝 ...
- 构建一个给爬虫使用的代理IP池
做网络爬虫时,一般对代理IP的需求量比较大.因为在爬取网站信息的过程中,很多网站做了反爬虫策略,可能会对每个IP做频次控制.这样我们在爬取网站时就需要很多代理IP. 代理IP的获取,可以从以下几个途径 ...
- 爬虫单个ip代理设置_爬虫怎样设置代理ip池
在网络迅速发展的今天,互联网企业层出不穷,爬虫工作者也越来越多,大家都知道,代理ip是爬虫工作者的一个有力助手,今天小编在这里就与大家分享一下如何设置代理池以及伪装成浏览器的方法,请看下面的介绍. 1 ...
- 爬虫单个ip代理设置_爬虫怎么设置代理ip池?
网络技术现在是如此发达,用户换ip再也不用自己手动来,很多ip代理都是傻瓜式操作,智能完成切换,完全不用使用者操心. 像在我们在利用网络爬虫开展数据采集,遇到爬取频率过高.频次过多的问题,会碰到ip被 ...
- 【python】爬虫入门:代理IP池的使用、文件的写入与网易云爬取时的注意事项
一.概述 在两天前实现利用爬虫爬取网易云音乐用户的各类公开信息之后,我对现有爬虫进行了功能上的增加.主要有: ①.使用代理IP池防止IP被封: ②.将爬取用户的听歌记录.歌单.关注.粉丝这四类数据的代 ...
最新文章
- 11家车企联手高通、大唐,加速V2X在华商用部署
- div+css中设置了float属性后如何让外层的高度随着内层的高度大小自动调整
- TCP协议三次握手连接四次握手断开和DOS攻击
- 12省联考2019口胡
- 企业上云的数据库演进之路
- 【推荐】8款神奇的动态网页布局及其制作方法
- ANSYS提取刚度矩阵
- 使用MetalLB在您的Raspberry Pi家庭实验室上安装Kubernetes负载均衡器
- Java笔记之对象代理实例
- pytorch---tensor概念的介绍
- 黑客帝国代码雨的实现
- cissp怎么维持?cissp维持费用多少?
- Nvidia GPU 最新计算能力表(CUDA Compute Capability)
- 《如何有效阅读一本书-超实用笔记读书法》
- 2021毓英中学高考成绩查询入口,2021年泉州各高中高考成绩排名及放榜最新消息...
- abaqus的python安装文件在哪_拓展abaqus python 模块
- 群晖挂载玩客云网络磁盘
- Android 利用广播实现黑名单【指定号码】的短信的拦截 附源码下载链接
- 微软全球副总裁李开复给中国青年的一封信
- 计算机方向的研究生(转)
热门文章
- c++ value categories
- c语言 error c2001,Visual Studio error C2001:常量中有换行符(解决办法)
- 记--重新安装python相关软件及环境配置
- html 保存 mysql file_前端HTML5几种存储方式的总结
- 安卓手机运行linux
- c#Ulong用一个高位Uint和低位Uint表示
- 01-什么是架构、架构的目的
- 数值计算笔记之非线性方程的求解(二)迭代法
- 数据、数据元素、数据项和数据对象
- linux系统如何检测网络打印机,Linux系统配置工具网络与打印机与硬件侦测