python爬虫-代理ip理解

目录

1、为什么使用代理IP

2、代理IP

3、IP池

4、代理分类:

5、python中使用代理IP

6、如何找可以使用的代理IP

7、拿到IP后,测试IP的有效性

8、扩展理解正向代理和反向代理

1、为什么使用代理IP

就是为了防止ip被封禁,提高爬虫的效率和稳定;

反反爬使用代理ip是非常必要的一种反反爬的方式,但是即使使用了代理ip,对方服务器任然会有很多的方式来检测我们是否是一个爬虫,比如:一段时间内,检测IP访问的频率,访问太多频繁会屏蔽;检查Cookie,User-Agent,Referer等header参数,若没有则屏蔽;服务方购买所有代理提供商,加入到反爬虫数据库里,若检测是代理则屏蔽等。所以更好的方式在使用代理ip的时候使用随机的方式进行选择使用,不要每次都用一个代理ip!

2、代理IP

代理IP是通过中间代理服务器来转发网络数据包。通过使用代理IP,可以保护爬虫程序的安全。代理IP通常是由第三方提供的服务,使用时需要向代理服务器发送访问请求,并将返回的数据包进行解析。

访问请求 ---> 到达代理服务器 ---->传递到目标网站

3、IP池

IP池是指一组IP地址的集合,通常由多个代理IP构成。IP池中的每个IP地址都可以用来模拟访问请求。IP池可以通过自建或购买第三方服务的方式获取,使用时需要将IP池的地址配置到爬虫程序中。

4、代理分类:

(1) 透明代理

服务器知道客户端使用了代理IP,并且知道客户端的真实IP地址。

(2) 普通匿名代理

代理服务器用自己的IP代替了客户端真实IP,但是告诉了目标访问对象这是代理访问。

(3) 高匿代理

代理服务器良好地伪装了客户端,不但用一个随机的IP代替了客户端的IP,也隐藏了代理信息,服务器不会察觉到客户端是通过代理实现访问的,即用户仿佛就是直接使用代理服务器作为自己的客户端,所以使用高匿代理就可以隐藏自己的真实IP了!

5、python中使用代理IP

requests中使用代理

在requests发送http请求中,有一个参数配置是proxies,可以直接配置代理服务器的ip地址即可!

python 复制代码
import  requests
requests.request(url="",headers={},proxies="ip地址:端口号")

6、如何找可以使用的代理IP

代理IP主要来自代理服务商,需要去买一些代理IP,但是有一些服务商会提供一些免费的IP,这样的话,可以获取到免费的IP供自己使用。但是注意测试免费ip的有效性; 还是花钱省心点。

例如快代理:免费代理IP - 大陆高匿代理IP - 开心代理IP平台|高质量代理IP|免费代理IP

7、拿到IP后,测试IP的有效性

  • 测试ip有效性可以通过访问:http://httpbin.org/ip 地址,测试会返回ip地址;
  • 或者直接访问一个网站,例如百度,看响应状态码是否为200判断有效性;
python 复制代码
# 两种方案测试ip有效性
import requests
# res = requests.get("http://www.baidu.com", proxies={"http": "8.213.137.155:80"})
res = requests.get("http://www.httpbin.org/ip",  
                proxies={"http": "123.56.129.203:50001"})
print(res.status_code)

8、扩展理解正向代理和反向代理

相关推荐
冷雨夜中漫步8 小时前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
郝学胜-神的一滴8 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
百锦再8 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
m0_7369191010 小时前
C++代码风格检查工具
开发语言·c++·算法
喵手10 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
2501_9449347310 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy10 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
黎雁·泠崖11 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_7634724612 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
肖永威12 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos