写python爬虫,你永远绕不过去代理问题

news2024/12/26 13:57:51

如果你想要从事 Python 爬虫相关岗位,那你一定会接触到代理问题,随之而来的就是下面 5 大代理知识点。

  • 什么是代理:代理是网络中间人(中间商赚插件),它代表用户发送网络请求,隐藏用户的真实身份。
  • 代理类型:常见的代理类型有匿名代理、普通代理、高匿代理、混淆代理、HTTP 代理、Socks 代理等。
  • 爬虫与代理的关系:爬虫经常需要使用代理,以避免被网站封禁或者限制,代理可以让爬虫以代理的身份发送请求,从而隐藏爬虫的真实身份
  • 代理的使用:在 Python 中使用代理可以通过修改请求头中的代理地址来实现,也可以使用第三方库如requests-proxy 来管理代理。
  • 代理池:代理池是一个存储代理的数据结构,它可以方便地管理多个代理,但本篇博客不详细展开讲,未来在爬虫训练场项目中将会构建一个代理池

文章目录

    • 什么是代理
    • 代理类型
    • 爬虫与代理的关系
    • 代理的使用,Python 语言
    • 代理池

什么是代理

代理是一种中间人(赚差价的中间商)的角色 🧔,它帮助用户发送网络请求 💻,同时隐藏用户的真实身份 🕵️‍♂️。

通俗的解释,就是你想去买某件见不得人的物品,自己不好意,然后请一个代理帮你完成这件事情。
代理人替你发送请求,并将物品送到你制定的地址,卖家只知道有代理人,不知道你是谁。

代理在网络中也是这样的工作方式,它代表用户发送请求,隐藏用户的真实身份。

代理类型

  • 匿名代理:装扮成别人,匿名代理隐藏了用户的真实身份,但是它并不是高度机密的。
  • 普通代理:一个普通的代理人,代表用户发送请求,但是不隐藏用户的真实身份。
  • 高匿代理:像警察装扮成卧底一样,高匿代理高度隐藏了用户的真实身份。
  • 混淆代理:间谍,混淆代理会混淆请求来源,使得很难追踪到真正的用户。
  • HTTP 代理:它是一种特殊类型的代理,专门处理 HTTP 请求。
  • Socks 代理:它也是一种特殊类型的代理,专门处理网络数据流。

上述这几种代理类型,使用难度最大的是 👉 高匿代理 👈。因为高匿代理在隐藏用户身份的同时,还要提供较高的网络安全性。

爬虫与代理的关系

这里橡皮擦尽量用通俗一点的文字进行描述。

当你使用爬虫爬取一个网站时,你相当于是一个游客,游览网站的内容,而网站服务器就是门卫大爷,负责检查每一个访问者是否合法。

如果网站服务器发现某个访问者正在大量地爬取网站内容,就可能会封锁它的 IP 地址,进而导致爬虫无法访问网站,从而导致爬取数据失败。

这时,就需要使用代理。代理就相当于是一个“中间人”🕵️‍♀️,当爬虫通过代理访问网站时,网站服务器就只能看到代理的 IP 地址,而无法看到真实的爬虫 IP 地址。

如果网站服务器封锁了代理的 IP 地址,那么你只需要更换代理,即可继续访问网站。

因此,使用代理可以有效地避免 IP 地址被封锁的情况,从而提高爬虫的爬取效率。

写python爬虫,你永远绕不过去代理问题

代理的使用,Python 语言

Python 的 requests 库可以方便地使用代理进行网络请求。例如我们使用 爬虫训练场 来进行测试。

import requests

# ip 是代理IP,port 是端口号
proxies = {
    'http': 'http://IP:PORT',
    'https': 'http://IP:PORT',
}

response = requests.get('http://pachong.vip', proxies=proxies)

print(response.text)

在上述代码中,咱使用了 http 代理和 https 代理。
proxies 字典中的键为代理类型,值为代理的 URL。
将 proxies 参数传递给 requests.get() 函数,这样就可以使用代理进行网络请求了。

代理池

代理池很容易理解,代理存放的池子,当我们使用代理时,可以从代理池中取出一个代理,在网络请求中使用。

在爬虫应用中,使用代理池可以避免频繁地从互联网上搜索代理,提高代理的使用效率。

在实战中,如果我们需要自己搭建代理池,一般情况下需要维护一个定期更新代理的程序,以确保代理的可用性。

在互联网上可以检索到一些免费的代理池 API,这里不在罗列

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 876 篇原创博客

👇 全网 6000+人正在学习的 爬虫专栏 👇👇👇👇

  • ⭐️ Python 爬虫 120,点击订购 ⭐️
  • ⭐️ 爬虫 100 例教程,点击订购 ⭐️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/338110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JDY-31蓝牙模块使用指南

前言 本来是想买个hc-05,这种非常常用的模块,但是在优信电子买的时候,说有个可以替代的,没注意看,买回来折腾半天。 这个模块是从机模块,蓝牙模块分为主机从机和主从一体的,主机与从机的区别就…

【安全】nginx反向代理+负载均衡上传webshel

Nginx负载均衡下上传webshell 什么是反向代理? 正向代理就是代替客户端进行各种服务的访问以及获取;那么反向代理自然就是代替服务器进行事务处理,就是此时的代理服务器负责将用户的各项请求做一个汇总、分类,将其分发到不同的服务…

网络抓包方式复现Tomcat- AJP协议文件读取/命令执行漏洞(CVE-2020-1938 / CNVD-2020-10487)

目录 测试是否安装成功​编辑 基础简介 Tomcat Connector(连接器) ​编辑Servlet(服务程序) Tomcat内部处理请求流程 Tomcat加载和处理jsp的流程图 抓包复现 需要将下图中抓取到的数据包修改一下 替换成二进制数据的形式: python版替换代码: 运…

WordPress网站日主题Ri主题RiProV2主题开启了验证码登录但是验证码配置不对结果退出登录后进不去管理端了

背景 WordPress网站日主题Ri主题RiProV2主题开启了验证码登录但是验证码配置不对结果退出登录后进不去管理端了;开启了腾讯云验证码防火墙但APPID,APPSecret没配置,结果在退出登录后,由于验证码验证失败管理端进不去了 提示如下:

自定义软件帮助文档(qt assistant实现)

网上搜了一下,软件的帮助文档,三个都可以:https://github.com/zealdocs/zeal,https://zealdocs.org/,看看这个博客说的 https://blog.csdn.net/libaineu2004/article/details/125028913,这个也是开源的&…

神经网络实战--使用迁移学习完成猫狗分类

前言: Hello大家好,我是Dream。 今天来学习一下如何使用基于tensorflow和keras的迁移学习完成猫狗分类,欢迎大家一起前来探讨学习~ 本文目录:一、加载数据集1.调用库函数2.加载数据集3.数据集管理二、猫狗数据集介绍1.猫狗数据集介…

【Spring(十一)】万字带你深入学习面向切面编程AOP

文章目录前言AOP简介AOP入门案例AOP工作流程AOP切入点表达式AOP通知类型AOP通知获取数据总结前言 今天我们来学习AOP,在最初我们学习Spring时说过Spring的两大特征,一个是IOC,一个是AOP,我们现在要学习的就是这个AOP。 AOP简介 AOP:面向切面编程,一种编程范式&#…

计算机网络自顶向下 -- 流水线,滑动窗口协议

流水线协议 Rdt3.0在停等操作的过程中浪费了大量的时间: 从而在Rdt 3.0上引入了流水线机制:为了提高资源利用率 流水线协议: 允许发送方在收到ACK之前连续发送多个分组,更大的序列号范围,同时发送方和/或接收方需要更…

关于自动驾驶高精定位的几大问题

交流群 | 进“传感器群/滑板底盘群”请加微信号:xsh041388交流群 | 进“汽车基础软件群”请加微信号:Faye_chloe备注信息:群名称 真实姓名、公司、岗位作者 | 许良定位是高等级自动驾驶的基础,但在高速NOA和城区NOA等场景中&…

Linux账号与用户组

目录 用户标识符:UID与GID 用户账号 /etc/passwd文件结构 1、账号名称 2、密码 3、UID 4、GID 5、用户信息说明栏 6、家目录 7、shell /etc/shadow文件结构 1、账号名称 2、密码 3、最近修改密码的日期 4、密码不可被修改的天数(与第三字…

Git | 在IDEA中使用Git

目录 一、在IDEA中配置Git 1.1 配置Git 1.2 获取Git仓库 1.3 将本地项目推送到远程仓库 1.4 .gitignore文件的作用 二、本地仓库操作 2.1 将文件加入暂存区 2.2 将暂存区的文件提交到版本库 2.3 查看日志 三、远程仓库操作 3.1 查看和添加远程仓库 3.2 推送至远程仓…

fastcgi未授权访问漏洞(php-fpm fast-cgi未授权访问漏洞)

本文参考《Fastcgi协议分析 && PHP-FPM未授权访问漏洞 && Exp编写》进行该漏洞的复现以及分析。 1.前置基础 1.1 nginx中的fastcgi 先来看先前用过的一张图,其是nginx解析用户请求的过程。 图中的几个定义: CGI:CGI是一种…

1628_MIT 6.828 xv6_chapter0操作系统接口

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这本书最初看名字以为是对早期unix的一个解读,但是看了开篇发现 不完全是,只是针对JOS教学OS系统来做的一些讲解。 Xv6是对UNIX v6的重新实…

【Java 面试合集】Java中修饰符有哪些,有什么应用场景

Java中修饰符有哪些,有什么应用场景 1. 概述 首先我们要知道Java的三大特性:封装,继承,多态。 而我们今天要分析的修饰符就跟封装有着密切的联系。因为权限修饰符可以控制变量以及方法的作用范围。 废话不多说,上图…

Python推导式

列表&#xff08;list&#xff09;推导式 [remove for source in xx_list]或者[remove for source in xx_list if condition] 实例&#xff1a; names[Bob,Mark,Mausk,Johndan,Wendy] new_names[name.upper() for name in names if len(name)<5] print(new_names)即迭代列…

PC端开发GUI

PC端开发GUI PC端环境搭建1、Python2、PycharmPC端环境搭建 1、Python 注意Python版本不能超过3.9,因为pyqt-tools只维护到python对应的该版本 1.1、查找是否安装python:win+R,输入cmd回车,输入python或python -V或python --version 1.2、若1.1没有,则下载安装下载链接…

天津菲图尼克科技携洁净及无菌防护服解决方案与您相约2023生物发酵展

BIO CHINA 生物发酵产业一年一度行业盛会&#xff0c;由中国生物发酵产业协会主办&#xff0c;上海信世展览服务有限公司承办&#xff0c;2023第10届国际生物发酵产品与技术装备展览会&#xff08;济南&#xff09;于2023年3月30-4月1日在山东国际会展中心&#xff08;济南市槐…

亿级高并发电商项目-- 实战篇 --万达商城项目 二(Zookeeper、Docker、Dubbo-Admin等搭建工作

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

第二章-进程(2)

进程一、进程的引入二、进程的状态及组成三、进程控制一、进程的引入 &#xff08;1&#xff09;程序的顺序执行: P1:axy P2:ba-5 P3:cb1 程序总是按照P1→P2→P3的顺序执行。 特点&#xff1a; 顺序性&#xff1a;处理机的操作严格按规定顺序执行。封闭性&#xff1a;程序执…

python(8):使用conda update更新conda后,anaconda所有环境崩溃----问题没有解决,不要轻易更新conda

文章目录0. 教训1. 问题:使用conda update更新conda后&#xff0c;anaconda所有环境崩溃1.1 问题描述1.2 我搜索到的全网最相关的问题----也没有解决3 尝试流程记录3.1 重新安装pip3.2 解决anaconda编译问题----没成功0. 教训 (1) 不要轻易使用conda update更新conda----我遇到…