爬虫之使用代理

爬虫—使用代理

1. 为什么使用代理

1.1 让服务器以为不是同一个客户端在请求

1.2 防止我们的真实地址被泄漏,防止被追究

2. 理解使用代理的过程

1-12

3. 理解正向代理和反向代理的区别

代理

通过上图可以看出:

  • 正向代理:对于浏览器知道服务器的真实地址,例如VPN
  • 反向代理:浏览器不知道服务器的真实地址,例如nginx

详细讲解:

正向代理是客户端与正向代理客户端在同一局域网,客户端发出请求,正向代理替代客户端服务器发出请求。服务器不知道谁是真正的客户端,正向代理隐藏了真实的请求客户端。

反向代理是服务器与反向代理在同一个局域网,客服端发出请求,反向代理接收请求,反向代理服务器会把我们的请求分转发到真实提供服务的各台服务器Nginx就是性能非常好的反向代理服务器,用来做负载均衡。

正向代理

反向代理

4. 代理的使用

  • 用法:

    requests.get('http://www.baidu.com', proxiex=proxies)
    
  • proxies的形式:字典

  • 例如:

    proxies = {
      'http': 'http://12.34.56.79:8321',
      'https': 'https://12.34.56.79:8321',
    }
    

5. 代理IP的分类

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

  • 透明代理(Transparent Proxy):透明代理的意思是客户端根本不需要知道有代理服务器的存在,但是它传送的仍然是真实的IP。使用透明代理时,对方服务器是可以知道你使用了代理的,并且他们也知道你的真实IP。你要隐藏的话,不要用这个。透明代理为什么无法隐藏身份呢?因为他们将你的真实IP发送给了对方服务器,所以无法达到保护真实信息。

  • 匿名代理(Anonymous Proxy):匿名代理隐藏了您的真实IP,但是向访问对象可以检测是使用代理服务器访问他们的。会改变我们的请求信息,服务器端可能会认为我们使用了代理。不过使用此种代理时,虽然被访问的网站不能知道你的IP地址,但仍然可以知道你在使用代理,当然某些能够侦测ip的网页也是可以查到你的ip。(https://wenku.baidu.com/view/9bf7b5bd3a3567ec102de2bd960590c69fc3d8cf.html)。

  • 高匿代理(Elite proxy或High Anonymity Proxy):高匿名代理不改变客户机的请求,这样在服务器看来就像有个真正的客户浏览器在访问它,这时客户的真实IP是隐藏的,完全用代理服务器的信息替代您的所有信息,就像您就是完全使用那台代理服务器直接访问对象,同时服务器端不会认为我们使用了代理。IPDIEA覆盖全球240+国家地区ip高匿名代理不必担心被追踪。

在使用的时候,毫无疑问使用高匿代理效果最好。

从请求使用的协议可以分为:

  • http代理
  • https代理
  • socket代理

不同分类的代理,在使用的时候需要根据抓取网站的协议来选择。

6. 代理IP使用的注意点

  • 反反爬

    使用代理ip是非常必要的一种反反爬的方式,但是即使使用了代理ip,对方服务器仍然会有很多的方式来检测我们是否是一个爬虫,比如:

    • 一段时间内,检测IP访问的频率,访问太频繁会屏蔽
    • 检查Cookie,User-Agent,Referer等header参数,若没有则屏蔽
    • 服务方购买所有代理提供商,加入到反爬虫数据库里,若检测是代理则屏蔽,所以更好的方式在使用代理ip的时候使用随机的方式进行选择使用,不要每次都用一个代理ip。
  • 代理ip池的更新

    购买的代理ip很多时候大部分(超过60%)可能都没办法使用,这个时候就需要通过程序去检测哪些可用,把不能用的删除掉。

  • 代理服务器平台的使用

    当然还有很多免费的,但是大多都不可用需要自己尝试

    • http://www.66ip.cn
    • Https://ip.jiangxianli.com/?page=1
    • Https://www.zdaye.com
    • Https://www.kuaidaili.com/free

7. 配置

  • 浏览器配置代理

    右边三点==>设置==>高级==>代理==>局域网设置==>为LAN使用代理==>输入ip和端口号即可,参考网址:https://jingyan.baidu.com/article/a681b0dece76407a1843468d.html

  • 代码配置

    urllib

    handler = urllib.request.ProxyHandler({'http': '114.215.95.188:3128'})
    opener = urllib.request.build_opener(handler)
    

    requests

    # 用到的库
    import requests
    # 写入获取到的ip地址到proxy
    # 一个ip地址
    proxy = {
      'http': 'http://221.178.232.130:8080'
    }
    
    # 多个ip地址
    proxy = [
    	{'http': 'http://221.178.232.130:8080'},
      {'http': 'http://221.178.232.130:8080'}
    ]
    
    import random
    proxy = random.choice(proxy)
    
    # 使用代理
    import requests
    
    res = requests.get('http://httpbin.org/ip', proxies={'http': 'http://113.121.22.149:9999'})
    print(res.text)
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL运维实战(3.1) MySQL官方客户端使用介绍

作者:俊达 引言 MySQL是MySQL安装包默认的客户端,该客户端程序通常位于二进制安装包的bin目录中,或者通过rpm安装包安装mysql-community-client,是数据库管理系统的重要组成部分。MySQL客户端不仅仅是一个简单的软件工具&#x…

RK3568驱动指南|第十一篇 pinctrl 子系统-第123章dt_node_to_map函数分析

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

【python入门】day26:统计字符串中出现指定字符的次数

案例 实际上if name“main”:就相当于是 Python 模拟的程序入口 。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个,选中哪个入口程序取决于 ** ** name** **的值。 代码 #-*- coding:utf-8 -*- #开发时间&#xff…

第一波!2024年1月精选6款实用AI人工智能设计工具合集

大家好,这是进入2024年之后的第一波干货合集!这次的干货合集还是以 AI 相关的设计干货开头,这次有了在本地无限制帮你清理图片中元素的 AI 工具,有知名免费图库出品的实时 AI 图片生成工具、将截图直接转化为代码的超强工具&#…

听觉障碍应该找哪些专业人士?如何获得这些职业?

如果您有听觉障碍的困扰可以寻求以下专业人士的帮助。如果你有兴趣从事听力学职业,可以考虑以下 十几个选项: 1. 临床听力学家 临床听力学家检查患者以诊断他们的听力、平衡或耳朵相关问题。他们与所有年龄段的患者一起工作,或专门针对特定群…

一步步指南:从指定时长中提取需求的帧图片,高效剪辑视频

在现代多媒体时代,视频已经成生活中不可或缺的一部分。从视频中提取某一帧图片,或者对视频进行剪辑,都是常见的需求。下面一起来看云炫AI智剪如何从指定时长中提取需求的帧图片,如何高效地剪辑视频。 按指定时长提取视频某帧图片的…

Openwrite帮我们实现一文多发

Openwrite 一文多发 当你想进入这个搞自媒体的圈子,学着人家一样去搞流量、做IP的时候,就会发现,卖铲子的和卖教程的都赚钱了。而对于商业一无所知的人,只能是接盘侠。可是,接盘侠又如何呢?高客单付不起&a…

【PaperReading】4. TAP

Category Content 论文题目 Tokenize Anything via Prompting 作者 Ting Pan, Lulu Tang, Xinlong Wang, Shiguang Shan (Beijing Academy of Artificial Intelligence) 发表年份 2023 摘要 提出了一个统一的可提示模型,能够同时对任何事物进行分割、识别和…

使用postman做接口测试(一)

如何执行HTTP接口测试。包括如下三步: 构造一条符合要求的HTTP请求消息;发给我,我给你回响应;你读取HTTP响应,检查响应内容是否正确。 今天我们就讲,如何使用postman发送符合要求的HTTP请求。 how-如何安…

大创项目推荐 深度学习火车票识别系统

文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 图像识别 火车票识别系统 该项目较为新颖,适…

在机械行业中,直线导轨和弧形导轨哪个应用范围更广泛?

弧形导轨和直线导轨是两种常见的导轨类型,直线导轨主要被用于高精度或快速直线往复运动场所,而弧形导轨是一种专门设计用于曲线运动的导轨系统,那么在机械行业中,直线导轨和弧形导轨哪个应用范围更加广泛呢? 直线导轨主…

GPT2:Language Models are Unsupervised Multitask Learners

目录 一、背景与动机 二、卖点与创新 三、几个问题 四、具体是如何做的 1、更多、优质的数据,更大的模型 2、大数据量,大模型使得zero-shot成为可能 3、使用prompt做下游任务 五、一些资料 一、背景与动机 基于 Transformer 解码器的 GPT-1 证明…

数据库创建表并插入数据练习题

一、创建表的要求 创建一个英雄表(hero) 主键 name nickname address groups email telphone 二、 操作步骤 1.登录MySQL [rootlocalhost ~]# systemctl start mysqld [rootlocalhost ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with…

UVa1308/LA2572 Viva Confetti

题目链接 本题是2002年ICPC亚洲区域赛金沢(日本)赛区的H题 题意 我已经把n个圆盘依次放到了桌面上。现按照放置顺序依次给出各个圆盘的圆心位置和半径,问最后有多少圆盘可见?如下图所示。 分析 《训练指南》的题解: 题目说“保证在对输入数据…

Unity网络通讯学习

---部分截图来自 siki学院Unity网络通讯课程 Socket 网络上的两个程序通过一个双向的通信连接实现数据交换,这个连接的一端称为一个 Socket ,Socket 包含了网络通信必须的五种信息 Socket 例子{ 协议: TCP 本地: IP &#xff…

Hive数据定义(1)

hive数据定义是hive的基础知识,所包含的知识点有:数据仓库的创建、数据仓库的查询、数据仓库的修改、数据仓库的删除、表的创建、表的删除、表的修改、内部表、外部表、分区表、桶表、表的修改、视图。本篇文章先介绍:数据仓库的创建、数据仓…

【国产之光】开年尝鲜——优秀的AI编码助手 Fitten Code

文章目录 前言1. 工具准备1.0 事先说明1.1 VSCode1.2 Fitten Code1.3 GitHub Copilot 2. 使用测评2.1 需求理解2.2 上下文理解 3. 总结推荐链接 开年尝鲜高质量国产AI编码助手——FittenCode 前言 2024年刚刚开局,清华大学 与 非十科技 就发布了全新的 VSCode AI…

Docker 介绍 及 支持的操作系统

Docker组成: Docker主机(Host): 一个物理机或虚拟机, 用于运行Docker服务进程和容器, 也成为宿主机, node节点。 Docker服务器端(Server): Docker守护进程, 运行Docker容器。 Docker客户端(Client): 客户端使用docker命令或其他工…

搭建LNMP网站平台并部署Web应用

本章主要介绍: 安装Nginx安装MySQL安装PHP在LNMP平台中部署 Web 应用 构建LNMP网站平台就像构建LAMP平台一样,构建LNMP平台也需要Linux服务器,MySQL数据库,PHP解析环境,区别主要在Nginx 与 PHP的协作配置上&#xff0…

基于SPI的插件式开发实现方案之@AutoService+ServiceLoader介绍及Dolphinscheduler中的实际应用

1.插件化开发概述 插件化开发模式正在很多编程语言或技术框架中得以广泛的应用实践,比如大家熟悉的jenkins,docker可视化管理平台rancher,以及日常编码使用的编辑器idea,vscode等。 实现服务模块之间解耦的方式有很多&#xff0…