代理ip的使用方法

简介: 代理ip的使用方法

代理ip原理


输入网址后发生了什么呢?


  1. 浏览器获取域名
  2. 浏览器渲染结果
  3. 四次挥手释放TCP连接
  4. 服务器将查询结果返回给浏览器
  5. 浏览器通过HTTP协议向服务器发送数据请求
  6. 通过DNS协议获取域名对应服务器的ip地址
  7. 浏览器和对应的服务器通过三次握手建立TCP连接


其中涉及到了:

应用层:HTTP和DNS

传输层:TCP UDP

网络层:IP ICMP ARP


代理ip做了什么呢?


简单一点来说,使用代理ip就是:


原本你的访问目标网站

使用代理ip后你的访问目标网站


为什么要用代理ip呢?


如果使用自己的真实ip去访问目标网站,会有很大的风险被网站记录。而怎么才能避免我们的真实ip被网站记录呢,那就需要使用代理ip来给我们套上一层伪装,来让目标网站检测不到我们的真实ip地址。除了这种情况,有的网站限制了一些地区的ip地址,如果不使用代理的话,我们就无法正常访问目标网站了,所以我们很多时候需要使用代理ip:

代码中使用代理ip


就像是请求时伪装头一样,伪装ip,注意是 { }


代理ip的获取


    像我们刚刚的proxies存储的代理,是可以直接作为参数传进requests里面使用的。那现在我们就来做这个proxies。


    首先打开一个代理IP提供商,我这里选择的是站大爷,我们一般使用api获取,也就是接口直接获取我们需要的ip,由供应商返回提供给我们的ip信息:

可以根据自己需要的情况设置:

这里从URL点击进去使用生成的API接口链接来做演示,会生成一个url链接,我们requests直接去请求这个链接,就可以获得这个代理IP的详细信息。

# 拿到供应商给我们的代理IP
URL = "https://www.zdaye.net/?utm-source=csdnhao&utm-keyword=%3Fcsdnhao"
 
# 这里参数控制了数量 格式 和ip协议等等 这也算是它的一个优势吧,多的话可以提取几百,而且可以指定城市从固定地点提取ip,更符合爬虫模拟人类的行为特征。
url = "http://api.proxy.zdaye.io/getProxyIp?num=1&return_type=txt&lb=1&sb=0&flow=1&regions=&protocol=http"
 
# 输出ip
res = requests.get(url)
print(res.text)
# 这个ip就可以放在我们实际要请求的网页requests中了


检验代理ip是否生效


我们访问一个网站,这个网站会返回我们的ip地址:

print(requests.get('http://httpbin.org/ip', proxies=proxies, timeout=3).text)

重点来了,我使用代理IP进行访问,如果返回来不是我们自己的IP,说明代理ip可用,可以伪装,也可以帮我们带回想要的信息。


我们看一下刚才我使用了四个不同的代理ip,结果是全部生效了,


未生效问题排查

如果你返回的还是本机地址,99%试一下两种情况之一:


1.请求协议不匹配

简单一点来说那就是,你请求的是http格式,那就要使用http的协议,是https格式,就要使用https的协议。

如果我请求是http ,但只有https,就会使用本机ip。


    继续重点,我们获取的代理是两种都支持的,但是要自己像我这样设置,就像去买了条鱼准备放生。却又不把鱼丢河里去,你不让它去水里,它当然游不起来,这属于我们自己的问题。


2.代理失效

 当我们使用的是免费代理或者一些廉价的普匿代理,那失效就是必然的了。使用代理还是建议选择一些优质的,名气大一点的代理。


相关文章
|
JavaScript IDE API
vue3--setup--父子组件传参-监听
vue3--setup--父子组件传参-监听
587 0
|
Web App开发 Linux
只需五步,在Linux安装chrome及chromedriver(CentOS)
只需五步,在Linux安装chrome及chromedriver(CentOS)
5841 1
|
监控 Linux 网络安全
百度搜索:蓝易云【CentOS7上安装Squid代理详细教程【附带使用教程】】
通过以上步骤,你已经成功安装和配置了Squid代理服务器,并且可以在客户端设备或应用程序中使用它进行代理访问。根据需要,你可以进一步定制Squid的配置,例如添加更多的访问控制规则或进行高级功能的配置。请注意,Squid还有许多其他的功能和选项,你可以参考Squid的官方文档以获取更详细的信息和配置指南。
815 0
|
3月前
|
数据采集 监控 安全
代理IP全解析:从原理到自建代理池的实战指南
代理IP如同网络世界的“隐形斗篷”,能隐藏真实身份,保护隐私,突破访问限制,提升数据抓取效率。本文详解代理IP的核心价值、自建代理池的技术方案、运维策略及实战应用,助你掌握数字时代的生存技能。
441 0
|
6月前
|
自然语言处理 调度 决策智能
掌握Multi-Agent实践(二):基于AgentScope构建支持@机制的群聊系统,实现定向对话机制
掌握Multi-Agent实践(二):基于AgentScope构建支持@机制的群聊系统,实现定向对话机制
410 10
|
网络协议 中间件 Python
使用代理IP的几种方案
使用代理IP的几种方案
431 2
|
7月前
|
数据采集 存储 缓存
Python爬虫与代理IP:高效抓取数据的实战指南
在数据驱动的时代,网络爬虫是获取信息的重要工具。本文详解如何用Python结合代理IP抓取数据:从基础概念(爬虫原理与代理作用)到环境搭建(核心库与代理选择),再到实战步骤(单线程、多线程及Scrapy框架应用)。同时探讨反爬策略、数据处理与存储,并强调伦理与法律边界。最后分享性能优化技巧,助您高效抓取公开数据,实现技术与伦理的平衡。
380 4
|
安全 网络协议 网络安全
IP代理的三大协议:HTTP、HTTPS与SOCKS5的区别
**HTTP代理**适用于基本网页浏览,简单但不安全;**HTTPS代理**提供加密,适合保护隐私;**SOCKS5代理**灵活强大,支持TCP/UDP及认证,适用于绕过限制。选择代理协议应考虑安全、效率及匿名需求。
|
11月前
|
数据采集 Web App开发 JavaScript
如何使用Selenium处理JavaScript动态加载的内容?
如何使用Selenium处理JavaScript动态加载的内容?
|
网络协议 Linux 网络安全
网络工程师的福音!三分钟快速上手这款强大的网络设备模拟器:PNETLab!
【8月更文挑战第22天】PNETLab是一款强大的开源网络设备模拟器,支持多种网络设备如交换机、路由器、防火墙等的模拟,以及TCP/IP等多种协议。用户可通过直观的界面创建网络拓扑、配置设备参数,进行网络测试以验证连通性和排查故障,并能导出结果便于分享与分析,为学习和工作提供高效工具。
947 1