requests模块-代理proxies使用_requests proxy-程序员宅基地

技术标签: 网络爬虫  python  网络  爬虫自学笔记  网络协议  开发语言  

了解代理以及proxy代理参数的使用

代理是什么?

  • 代理是一种中间服务器,它在客户端和目标服务器之间充当桥梁的角色。
  • 代理服务器帮助转发客户端的请求,并将目标服务器的响应返回给客户端。

代理ip是什么?

  • 代理ip是一个特定的IP地址,指向的是代理服务器的位置。
  • 通过设置proxy代理参数并指定代理ip,客户端的请求会被发送到代理服务器,而不是直接访问目标服务器。

proxy代理参数的作用

  • 使用proxy代理参数,我们可以告诉客户端使用特定的代理服务器进行网络请求。
  • 这样,我们的真实身份和位置就得到了隐藏,提高了网络安全性和隐私保护。

代理的使用场景

  • 数据采集和网络爬虫:代理可帮助在多个网站之间轮流采集数据,防止被封IP。
  • 访问受限制的网站:代理允许我们绕过一些地区或网络限制,访问被屏蔽的内容。
  • 提高安全性:代理可过滤恶意内容,保护客户端免受恶意攻击。

总结

代理ip和proxy代理参数的使用让我们可以在网络请求中添加中间层,隐藏真实身份,提高隐私保护和安全性。在数据采集、访问受限网站和提高网络安全性等方面都有重要应用。

在这里插入图片描述

正向代理和反向代理的区别

  1. 角度区分:

    • 正向代理是为浏览器或客户端(发送请求的一方)转发请求的代理服务器。
    • 反向代理是为最终处理请求的服务器转发请求的代理服务器。
  2. 正向代理:

    • 正向代理为浏览器或客户端转发请求,客户端知道最终处理请求的服务器的真实ip地址,例如VPN。
    比喻解释:正向代理就像是你请了一个中间人(代理)帮你买东西。你告诉中间人你想要买什么东西,中间人知道你的需求,并帮你去购买。但是最后拿到的东西还是由中间人交给你,你知道最终是中间人帮你买的。
  3. 反向代理:

    • 反向代理不为浏览器或客户端转发请求,而是为最终处理请求的服务器转发请求。

    • 客户端不知道服务器的真实地址,请求发送给反向代理服务器,然后由反向代理服务器转发给最终处理请求的服务器,例如nginx。

      比喻解释: 反向代理就像是商店里的前台售货员。你去商店购物时,不知道实际上是售货员在背后帮你取货,然后将货物交给你。售货员充当了中间人的角色,隐藏了货物的实际来源。

在正向代理中,代理服务器位于客户端和目标服务器之间,隐藏客户端的真实身份,客户端通过代理服务器发送请求,代理服务器再将请求转发给目标服务器。而在反向代理中,代理服务器位于目标服务器和客户端之间,隐藏目标服务器的真实身份,客户端发送请求到反向代理服务器,然后反向代理服务器再将请求转发给目标服务器。这样的不同角色和转发方式,使得正向代理和反向代理在应用场景上有所不同。

代理ip(代理服务器)的分类

  1. 根据代理ip的匿名程度,代理IP可以分为下面三类:

    • 透明代理(Transparent Proxy):透明代理虽然可以直接“隐藏”你的IP地址,但是还是可以查到你是谁。目标服务器接收到的请求头如下:

      # 这段代码是用于获取客户端的真实 IP 地址的方法,但由于可能存在代理服务器,需要进行一些检查
      
      # 获取客户端 IP 地址
      REMOTE_ADDR = Proxy IP
      
      # 检查是否存在 HTTP_VIA 头,该头字段常用于指示请求是否经过代理服务器
      HTTP_VIA = Proxy IP
      
      # 检查是否存在 HTTP_X_FORWARDED_FOR 头,该头字段常用于表示客户端真实 IP 地址,但也可以被伪造
      HTTP_X_FORWARDED_FOR = Your IP
      
      
    • 匿名代理(Anonymous Proxy):使用匿名代理,别人只能知道你用了代理,无法知道你是谁。目标服务器接收到的请求头如下:

      # 示例代码块:使用匿名代理隐藏客户端真实IP地址
      
      # 这个示例代码块模拟了在使用匿名代理时,请求头信息中显示的内容。
      # 匿名代理隐藏了客户端的真实IP地址,将其显示为代理服务器的IP地址,提高了用户的隐私保护。
      
      # 请求头信息示例:
      # 客户端的真实IP地址被隐藏,显示为代理服务器的IP地址
      REMOTE_ADDR = 代理IP
      
      # HTTP_VIA头字段表示请求经过了代理服务器,显示为代理服务器的IP地址
      HTTP_VIA = 代理IP
      
      # HTTP_X_FORWARDED_FOR头字段表示客户端的真实IP地址,但在匿名代理中仍然显示为代理服务器的IP地址
      HTTP_X_FORWARDED_FOR = 代理IP
      
      
    • 高匿代理(Elite proxy或High Anonymity Proxy):高匿代理让别人根本无法发现你是在用代理,所以是最好的选择。毫无疑问使用高匿代理效果最好。目标服务器接收到的请求头如下:

      # 示例代码块:使用高匿代理隐藏客户端真实IP地址
      
      # 这个示例代码块模拟了在使用高匿代理时,请求头信息中显示的内容。
      # 高匿代理完全隐藏了客户端的真实IP地址和使用代理的事实,保护隐私最好的选择。
      
      # 请求头信息示例:
      # 客户端的真实IP地址被隐藏,显示为代理服务器的IP地址
      REMOTE_ADDR = 代理IP
      
      # HTTP_VIA头字段没有显示代理服务器的IP地址,表示请求未经过代理服务器
      HTTP_VIA = not determined
      
      # HTTP_X_FORWARDED_FOR头字段没有显示客户端真实IP地址,表示无法得知客户端的真实身份
      HTTP_X_FORWARDED_FOR = not determined
      
      
  2. 根据网站所使用的协议不同,可以选择相应协议的代理服务。以下是不同协议的代理服务及其特点:

    • HTTP代理: 适用于访问使用HTTP协议的网站。
    • HTTPS代理: 适用于访问使用HTTPS协议的网站,提供更高的安全性。
    • SOCKS隧道代理(如SOCKS 5代理):
      1. SOCKS代理仅传递数据包,不关心具体的应用协议(如FTP、HTTP和HTTPS等)。
      2. 相对于HTTP和HTTPS代理,SOCKS代理通常耗时较少。
      3. SOCKS代理可转发HTTP和HTTPS请求,具有更强的灵活性。

    选择合适的代理服务取决于所访问网站的协议类型和性能要求。

proxies代理参数的使用

为了让服务器以为不是同一个客户端在请求;为了防止频繁向一个域名发送请求被封ip,所以我们需要使用代理ip;那么我们接下来要学习requests模块是如何使用代理ip的

  • 用法:

    response = requests.get(url, proxies=proxies)
    
  • proxies的形式:字典

  • 例如:

    proxies = {
           
        "http": "http://12.34.56.79:9527", 
        "https": "https://12.34.56.79:9527", 
    }
    
  • 注意:如果proxies字典中包含有多个键值对,发送请求时将按照url地址的协议来选择使用相应的代理ip

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_67268191/article/details/132144420

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法