爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

不温卜火 等级 446 1 0

  大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行更新,博客主页:https://buwenbuhuo.blog.csdn.net/

PS:由于现在越来越多的人未经本人同意直接爬取博主本人文章,博主在此特别声明:未经本人允许,禁止转载!!!

特此声明:博主在本片博文的第一部分引用借鉴的程序猿果果《爬虫为什么要使用代理IP》这篇文章,感兴趣的同学可以看下。

目录


爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用


推荐

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
  ♥各位如果想要交流的话,可以加下QQ交流群:974178910,里面有各种你想要的学习资料。♥

  ♥欢迎大家关注公众号【不温卜火】,关注公众号即可以提前阅读又可以获取各种干货哦,同时公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍1份哟~♥
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

一、为什么使用代理IP

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

我们在做爬虫的过程中经常会遇到以下情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,可能会看到“您的IP访问频率太高”这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封IP。

既然服务器检测的是某个IP单位时间的请求次数,那么借助某种方式来伪装我们的IP,让服务器识别不出是由我们本机发起的请求,不就可以成功防止封IP了吗?

这个时候就用到代理IP了,说到代理IP下面就需要先基本原理、代理的作用。

1、基本原理

代理实际上指的就是代理服务器,英文叫作proxy server,它的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。在我们正常请求一个网站时,是发送了请求给Web服务器,Web服务器把响应传回给我们。如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向Web服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给Web服务器,接着由代理服务器再把Web服务器返回的响应转发给本机。这样我们同样可以正常访问网页,但这个过程中Web服务器识别出的真实IP就不再是我们本机的IP了,就成功实现了IP伪装,这就是代理的基本原理。

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

2、代理的作用

  • 突破自身IP访问限制,访问一些平时不能访问的站点。
  • 访问一些单位或团体内部资源:比如使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  • 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  • 隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。对于爬虫来说,我们用代理就是为了隐藏自身IP,防止自身的IP被封锁。

二、如何使用代理IP

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
如何使用代理IP主要看你用什么语言写的爬虫,使用什么框架,使用代理是一种基本的业务需求,基本上所有爬虫都会内置支持。

一提到使用代理IP ,就不得不说是使用免费IP还是花钱使用高匿代理。这个东西主要还是看个人了,如果对ip要求不高,你可以选择使用网上免费的开放代理,自己建一个程序维护一个ip池,爬取一些代理网站的免费ip,加一道测试程序,如果测试可以用,就把它收集起来供爬虫使用。不过免费代理可用率实在是太低,而且不是很稳定,经常会失效,条件允许的话强烈建议花点钱选择收费的私密代理。

PS:经常使用的西刺代理已经挂掉了,打开网页之后,我们会发现已经无法访问了
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
便宜没好货,更别说免费的,免费的代理现在好用的博主暂时也不知道。不过可以找那种免费试用的。博主测试用的是芝麻代理,如果只是测试的话可以领取每日免费IP
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
下图为获取到的代理IP
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
好了,代理ip已经获取完毕了,下面我们是不是需要找一个测试网站,下面博主给出一个专门测试的网站:https://httpbin.org/
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
打开网页之后,我们可以看到ip为本机ip,下面我们通过添加代理ip进行访问并查看结果。

下面通过代码进行实现:

# encoding: utf-8
'''
  @author 李华鑫
  @create 2020-10-06 15:57
  Mycsdn:https://buwenbuhuo.blog.csdn.net/
  @contact: 459804692@qq.com
  @software: Pycharm
  @file: 代理ip.py
  @Version:1.0

'''
import requests

proxies = {
    "https":"https://58.218.200.247:9934"
}

response = requests.request(method="get",url="https://httpbin.org/get",proxies=proxies)
print(response.text) 

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
🆗,测试完毕。说明能够使用 。下面我们再来看下刚才没有看到的部分
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
在上述三者,以博主现在的水平并不能给出完美的解释,不过我们直接使用独享IP或隧道IP即可。

三、自动提取代理

上述代码虽然已经实现代理IP的作用,但是我们想想,如果这个IP被网站封了以后,我们再次手动刷新会不会很麻烦,既然这样,我们能不能让其能够自动提取代理呢?话不多说,开整。

想要实现自动提取代理,我们首先需要对生成的链接进行分析:

我们先通过多次刷新 发现我们刷新页面需要等待3秒钟,否则将会获取失败
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
分析完之后,我们再来分析链接: 再打开链接之后,我们通过开发者选项进行查看
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
通过查看我们发现我们需要的ip和端口号已经找到了,这个时候我们可以通过分别提取然后通过字符串拼接的方式,得到我们需要的样式代码如下:

def get_proxies():
    #这里获取的芝麻HTTP代理http https\\
    time.sleep(3)
    proxies = {
        "http": "",
        "https": ""
    }
    response = requests.get("http://http.tiqu.alicdns.com/getip3?num=1&type=2&pro=&city=0&yys=0&port=11&time=1&ts=0&ys=0&cs=1&lb=1&sb=0&pb=45&mr=2&regions=")
    content = response.json()
    print(content)
    proxies["https"] = content["data"][0]["ip"]+":"+str(content["data"][0]["port"])
    print(proxies)
    return proxies 

这是我们看下结果,是不是我们想要的:
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

🆗,完美!

分析完成,下面看下最终代码及效果图:

#!/usr/bin/env python
# encoding: utf-8
'''
  @author 李华鑫
  @create 2020-10-06 16:31
  Mycsdn:https://buwenbuhuo.blog.csdn.net/
  @contact: 459804692@qq.com
  @software: Pycharm
  @file: 自动提取代理.py
  @Version:1.0

'''
import requests
import time

def get_proxies():
    #这里获取的芝麻HTTP代理http https\\
    time.sleep(3)
    proxies = {
        "http": "",
        "https": ""
    }
    response = requests.get("http://http.tiqu.alicdns.com/getip3?num=1&type=2&pro=&city=0&yys=0&port=11&time=1&ts=0&ys=0&cs=1&lb=1&sb=0&pb=45&mr=2&regions=")
    content = response.json()
    print(content)
    proxies["https"] = content["data"][0]["ip"]+":"+str(content["data"][0]["port"])
    print(proxies)
    return proxies

proxies = get_proxies()
response = requests.request(method="get",url="https://httpbin.org/get",proxies=proxies)
print(response.text) 

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
美好的日子总是短暂的,虽然还想继续与大家畅谈,但是本篇博文到此已经结束了,如果还嫌不够过瘾,不用担心,我们下篇见!


爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用

本文转自 https://buwenbuhuo.blog.csdn.net/article/details/109235716,如有侵权,请联系删除。

收藏
评论区

相关推荐

k8s超详细总结
一个目标:容器操作;两地三中心;四层服务发现;五种Pod共享资源;六个CNI常用插件;七层负载均衡;八种隔离维度;九个网络模型原则;十类IP地址;百级产品线;千级物理机;万级容器;相如无亿,K8s有亿:亿级日服务人次。 一个目标:容器操作 Kubernetes(k8s)是自动化容器操作的开源平台。这些容
爬虫入门经典(六) | 一文带你深入了解为什么使用代理IP及其如何使用
大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行
HTTP协议与TCP,DNS , IP 协议的关系
在TCP/IP协议族中与HTTP密不可分的有3个协议,分别是IP、TCP和DNS。下面简单介绍下这3种协议。 1、IP协议         IP(Internet Protocol)网际协议位于网络层,几乎所有使用网络的系统都会用到 IP 协议。TCP/IP 协议族中的 IP 指的就 是网际协议,"IP"和"IP地址"是不同的,"IP"其实是一种协
TCP/IP网络协议
1、  简述osi七层模型和TCP/IP五层模型 一、OSI参考模型         今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。  1、OSI的来源         OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,
kali2020.3安装Nessus8.12.1并解除IP限制
1、准备 (1)获得激活码 地址:https://zhcn.tenable.com/products/nessus/nessusessentials https://zhcn.tenable.com/products/nessus/activationcode?tns\_redirecttrue(https://zhcn.tenable
手把手教你用用Python爬取上道网的赞助公司名称
一、前言 上道网是一个手游发行推荐与投融资交易平台。平台聚集手游CP、手游发行、手游渠道、手游外包,投资商以及IP授权商,IP合作、一站式服务。并为之提供合作交易机会。 今天教如何去爬取上道网的赞助公司名称,方便有关人士投资。 (https://imghelloworld.osscnbeijing.aliyuncs.com/dc08ff2
笔趣阁小说api
笔趣阁api小说api,提供小说相关api接口,目前支持笔趣阁(https://m.bqkan.com/)。ip地址:http://49.234.123.245:8082 笔趣阁(https://m.bqkan.com/) 1. 首页 ip/getHome 2. 小说分类 ip/
Python 快速验证代理IP是否有效
有时候,我们需要用到代理IP,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携带该IP来模拟访问某一个网站,如果多次未成功访问,则说明这个代理是无效的。代码如下:pythonimport requestsimport randomimport timehttp_ip '118.
洞察秋毫——JFrog日志分析 协助监视Docker Hub上的拉取操作
一、背景大家已经注意到,Docker Hub现在开始对镜像拉取进行限制,无论是免费的匿名用户,还是认证用户。在六个小时内,从一个IP地址镜像拉取的请求次数超过固定阈值(匿名用户100次,认证用户200次)后,Docker Hub就会限制其拉取带宽。虽然用户仍然可以拉取到Docker镜像,但是速度要慢得多。您可以阅读我们之前的博客文章《绕开Docker
网络渗透测试实验二
写在前面 好像没啥好写的,直接开锤,提前验收然后周六去太湖杯看看题 网络渗透测试实验二:网络嗅探与身份认证 实验目的1. 通过使用 Wireshark 软件掌握 Sniffer (嗅探器)工具的使用方法,实现捕捉 HTTP 等协议的数据包,以理解 TCP/IP 协议中多种协议的数据结构、通过实验了解 HTTP 等协议明文传输的特性。2. 研究交换环境下的网络
IP数据库的定位能力在商业端的具体应用有哪些?(一)
IP数据库包含全球43亿全量IPv4与 2^128全量IPv6,数据库版本分为高精准公安版、高精准商业版、区县级、城市级和IPv6共5个版本。IP数据库主要解决的痛点为互联网广告精准投放、内容精准推荐、用户位置画像、重点企业办公网络资产普查,网络攻击溯源&取证、嫌疑人地理位置定位、服务器优化分配等。互联网在线广告精准投放基于IP地理位置的在线广告投放,提高广
创建免费ip代理池
     反爬技术越来越成熟,为了爬取目标数据,必须对爬虫的请求进行伪装,骗过目标系统,目标系统通过判断请求的访问频次或请求参数将疑似爬虫的ip进行封禁,要求进行安全验证,通过python的第三方库faker可以随机生成header伪装请求头,并且减缓爬虫的爬取速度,能很好的避过多数目标系统的反扒机制,但对一些安全等级
手把手教你使用XPath爬取免费代理IP
大家好,我是霖hero。前言 可能有人说,初学者Python爬虫爬数据太难啦,构造正则表达式的时候,太烦琐了,眼睛都看花了,而且前一秒还可以愉快地爬取,下一秒IP就被封了,这还爬个屁啊,不爬了。哎,不要着急,这篇文章我们教你如何使用XPath来爬取快代理中的免费代理IP,告别眼花,告别IP被封的烦恼。XPath首先我们来简单了解一下XPath,想要了解更多
【备战秋招】干翻面试官! 你这TCP攻击牛批阿!
这一篇主要和大家一起学习回顾关于 TCP/IP 的常见攻击,至少有一个基本的认识 前言 1 IP欺骗 IP是什么在网络中,所有的设备都会分配一个地址。这个地址就仿佛小蓝的家地址「多少号多少室」,这个号就是分配给整个子网的,「室」对应的号码即分配给子网中计算机的,这就是网络中的地址。「号」对应的号码为网络号,「室」对应的号码为主机号,这个地址的整体就是IP地址
“挂图作战”网络实体定位技术
在当今互联网的浪潮下,网络给人们带来了巨大的经济效益和便利。广告商通过判断网络用户的位置来推送精确的广告;网络安全人员通过定位IP位置来确定网络故障的所在,及时排除故障。因此对于IP地址的实体地理位置定位技术的研究就显的愈发的重要。  随着IP定位技术的发展,集成的IP定位系统就是将国内外优秀的IP定位数据库汇集到一起,附加抓取一些WHOIS和DNS.LOC