网络爬虫设置代理服务器
目录
1.获取代理 IP
2.设置代理 IP
3. 检测代理 IP 的有效性
4. 处理异常
如果希望在网络爬虫程序中使用代理服务器,就需要为网络爬虫程序设置代理服务器。
1.获取代理 IP
2.设置代理 IP
proxies = { 'http': 'http://127.0.0.1:8070', 'https': 'https://10.10.1.10:1080',
} import requests
import random
# 代理 IP 地址的列表
proxy_list = [ {"http" : "http://101.200.127.149:3129"}, {"http" : "http://59.55.162.4:3256"}, {"http" : "http://180.122.147.76:3000"}, {"http" : "http://114.230.107.102:3256"}, {"http" : "http://121.230.211.163:3256"}
]
base_url = 'http://erabbit.itheima.net/#/'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/90.0.4430.212 Safari/537.36'}
# 发送 GET 请求,将 proxy_list 中任意一个 IP 地址设为代理
response = requests.get(base_url, headers=header, proxies= random.choice(proxy_list))
print(response.status_code)
header请求头字段可以在网页按F12键,上方找到网络标识,然后点击下方有一个名称点进去,右边窗口下面就有User-Agent字段。

200
3. 检测代理 IP 的有效性
import requests
proxy_list = [ {"http" : "http://101.200.127.149:3129"}, {"http" : "http://59.55.162.4:3256"}, {"http" : "http://180.122.147.76:3000"}, {"http" : "http://114.230.107.102:3256"}, {"http" : "http://121.230.211.163:3256"}
]
base_url = 'http://erabbit.itheima.net/#/'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/90.0.4430.212 Safari/537.36'}
# 遍历代理 IP
for per_ip in proxy_list.copy(): try: # 发送 GET 请求,将获取的每个 IP 地址设置为代理response = requests.get(base_url, headers=header, proxies=per_ip, timeout=3) except: # 失败则输出 IP 地址无效,并将该 IP 地址从 proxy_list 列表中移除print(f'IP 地址:{per_ip.get("http")}无效') proxy_list.remove(per_ip) else: # 成功则输出 IP 地址有效print(f'IP 地址:{per_ip.get("http")}有效')
IP 地址:http://101.200.127.149:3129 有效
IP 地址:http://59.55.162.4:3256 无效
IP 地址:http://180.122.147.76:3000 无效
IP 地址:http://114.230.107.102:3256 无效
IP 地址:http://121.230.211.163:3256 有效
4. 处理异常
表 3-2 中罗列了一些常见的异常类型。其中,Timeout 继承自 RequestException,Connect Timeout 和 ReadTimeout 继承自 Timeout。 为保证程序能够正常终止,我们可以使用 try-except 语句捕获相应的异常,并对异常进行 相应的处理。 由于谷歌网站服务器的原因,访问该网站必定会出现连接超时的问题。下面以访问谷歌 网站为例,为大家演示如何使用 try-except 语句捕获 RequestException 异常,具体代码如下。
1 import time
2 import requests
3 # 记录请求的发起时间
4 print(time.strftime('开始时间:%Y-%m-%d %H:%M:%S'))
5 # 捕获 RequestException 异常
6 try:
7 html_str = requests.get('http://www.google.com').text
8 print('访问成功')
9 except requests.exceptions.RequestException as error:
10 print(error)
11 # 记录请求的终止时间
12 print(time.strftime('结束时间:%Y-%m-%d %H:%M:%S'))
开始时间:2021-06-16 13:50:53
HTTPConnectionPool(host='www.google.com', port=80): Max retries exceeded with url:
/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at
0x00000000034D6790>: Failed to establish a new connection: [WinError 10060] 由于连接方
在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。'))
结束时间:2021-06-16 13:51:14
# 发送 GET 请求,设置超时时长
html_str = requests.get('http://www.google.com', timeout=5).text
再次运行代码,输出如下结果。
开始时间:2021-06-16 14:30:01
HTTPConnectionPool(host='www.google.com', port=80): Max retries exceeded with url:
/ (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at
0x00000000033E23D0>, 'Connection to www.google.com timed out. (connect timeout=5)'))
结束时间:2021-06-16 14:30:06
相关文章:
网络爬虫设置代理服务器
目录 1.获取代理 IP 2.设置代理 IP 3. 检测代理 IP 的有效性 4. 处理异常 如果希望在网络爬虫程序中使用代理服务器,就需要为网络爬虫程序设置代理服务器。 设置代理服务器一般分为获取代理 IP 、设置代理 IP 两步。接下来,分…...
3、matlab单目相机标定原理、流程及实验
1、单目相机标定流程及步骤 单目相机标定是通过确定相机的内部和外部参数,以便准确地在图像空间和物体空间之间建立映射关系。下面是单目相机标定的流程及步骤: 搜集标定图像:使用不同角度、距离和姿态拍摄一组标定图像,并确保标…...
【gdb 如何生成并查看core dump】
生成core dump 使用ulimit命令来设置core dump文件的大小。 ulimit -c unlimitedcore dump位置 如果程序崩溃,系统会生成一个名为core的文件。可以通过以下命令查看core文件位置, cat /proc/sys/kernel/core_pattern查看core dump gdb /path/to/you…...
极简短视频查看、删除应用
本地短视频服务器 背景:我的NAS中存放了很多短视频,多到很多没看过,于是写了这个程序来随机查看并删除短视频 运行: 安装依赖后运行main.py 直接使用docker: docker pull realwang/short_video docker run -d -p 3000:…...
【秋招刷题打卡】Day01-自定义排序
Day01-自定排序 前言 给大家推荐一下咱们的 陪伴打卡小屋 知识星球啦,详细介绍 >笔试刷题陪伴小屋-打卡赢价值丰厚奖励 < ⏰小屋将在每日上午发放打卡题目,包括: 一道该算法的模版题 (主要以力扣,牛客,acwin…...
API低代码平台介绍6-数据库记录删除功能
数据库记录删除功能 在前续文章中我们介绍了如何插入和修改数据库记录,本篇文章会沿用之前的测试数据,介绍如何使用ADI平台定义一个删除目标数据库记录的接口,包括 单主键单表删除、复合主键单表删除、多表删除(整合前两者&#x…...
计算机基础之:硬件系统的性能评估标准
服务器时钟的性能通常涉及多个方面,主要包括准确性、稳定性、以及对系统性能的影响。以下是一些关键指标和衡量方法: 准确性: 时间偏移:测量服务器时钟与一个可靠时间源(如GPS时间、原子钟或NTP服务器)之间…...
高互动UI设计揭秘:动画效果如何提升用户体验
动画,由于其酷的视觉冲击,往往会产生极好的用户体验。UI设计中的动态效果可以使用户界面看起来更酷,特别是界面的功能动画,是UX设计的重要组成部分,不容忽视。为什么UI设计的动态效果如此重要?接下来&#…...
探索Java异常处理的奥秘:源码解析与高级实践
1. 引言 在Java编程的广阔天地中,异常处理是确保程序健壮性、稳定性和可维护性的重要基石。对于Java工程师而言,深入理解Java异常处理的机制,并能够在实践中灵活运用,是迈向卓越的重要一步。 2. 基本概念 在Java中,异常(Exception)是程序执行期间出现的不正常或错误情况…...
深入了解python函数与函数内存使用
函数的定义 函数作为代码复用的基本单元,可以帮助我们组织代码、减少重复、提高可读性和可维护性。 在 Python 中,函数本质上是对象,可以赋值给变量、存储在数据结构中、作为参数传递和返回。 函数与内存 函数的加载和调用过程中ÿ…...
Java面试----MySQL面试题
1.索引有哪些优缺点? MySQL索引作为一种提升数据库查询效率的重要机制,具有以下主要优点和缺点: 优点: 提高查询速度: 索引能够显著加速数据的检索过程,类似于书籍的目录,让数据库引擎能够快速…...
python从入门到精通2:缩进
在Python中,缩进(Indentation)是一个非常重要的语法元素,它用于表示代码块的结构。与其他许多编程语言使用大括号 {} 来定义代码块不同,Python使用缩进来确定代码块的开始和结束。这种简洁的语法使得Python代码更加清晰…...
了解CDN:提升网络性能和安全性的利器
在当今的数字时代,网站性能和安全性是每一个网站管理员必须关注的核心问题。内容分发网络(CDN,Content Delivery Network)作为解决这一问题的重要工具,逐渐成为主流。本文将详细介绍CDN的定义、作用及其工作原理&#…...
ChatGPT的工作原理
ChatGPT的工作原理可以详细分为以下几个步骤,下面将结合相关信息进行清晰、详细的介绍: 数据收集: ChatGPT首先会从大量的文本数据中收集信息,这些数据可能包括网页、新闻、书籍等多样化的来源。它还会特别关注和分析网络上的热点…...
基于DPU的云原生裸金属服务快速部署及存储解决方案
1. 背景介绍 1.1. 业务背景 在云原生技术迅速发展的当下,容器技术因其轻量级、可移植性和快速部署的特性而成为应用部署的主流选择,但裸金属服务器依然有其独特的价值和应用场景,是云原生架构中不可或缺的一部分。 裸金属服务器是一种高级…...
论文学习_Large Language Models Based Fuzzing Techniques: A Survey
论文名称发表时间发表期刊期刊等级研究单位Large Language Models Based Fuzzing Techniques: A Survey 2024年arXiv-悉尼大学 0.摘要 研究背景在软件发挥举足轻重作用的现代社会,软件安全和漏洞分析对软件开发至关重要,模糊测试作为一种高效的软件测试方法,并广泛应用于各个…...
响应式德米拉数字内容交易系统素材下载站模板
★模板说明★ 该数字交易系统设计非常完美,两种响应式模式,可打开边栏模式和盒子模式;八种网站颜色,四种风格颜色可供用户自行选择,还可在网站选背景图片;完美的分成系统、充值功能、个人中心等等都以html…...
数据库开发-MySQL
前言 首先来了解一下什么是数据库。 数据库:英文为 DataBase,简称DB,它是存储和管理数据的仓库。 像我们日常访问的电商网站京东,企业内部的管理系统OA、ERP、CRM这类的系统,以及大家每天都会刷的头条、抖音类的app…...
香港大带宽服务器高性能配置选择灵活
香港大带宽服务器是指在香港数据中心托管的,配备了高速网络连接的服务器。这些服务器通常用于需要大量数据传输和快速响应时间的应用,如视频流媒体、在线游戏、远程工作和大规模数据处理任务。具体分析如下,rak部落为您整理发布。 1. **内存配…...
Oracle中生僻汉字的解决办法
在Oracle数据库中处理生僻汉字时,主要面临的问题是某些字符集可能无法完全支持所有的汉字,特别是生僻字。以下是一些解决Oracle中生僻汉字问题的办法: 检查当前字符集: 使用SELECT USERENV(language) FROM dual;命令来查看当前数…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...
