Python网络爬虫中HTTP和HTTPS代理的完整使用教程

python使用http、https代理

在国内利用Python从Internet上爬取数据时,有些网站或API接口被限速或屏蔽,这时使用代理可以加速爬取过程,减少请求失败,Python程序使用代理的方法主要有以下几种:

(1)如果是在代码中使用一些网络库或爬虫框架进行数据爬取,一般这种框架都会支持设置代理,例如:

ini 复制代码
import urllib.request as urlreq
ph = urlreq.ProxyHandler({'https': 'https://127.0.0.1:1080'})
oper = urlreq.build_opener(ph)
urlreq.install_opener(oper)
res = oper.open("https://www.google.com")
print(res.read())
复制代码
dart 复制代码
import requests as req
print(req.get("https://www.google.com", proxies={'https': 'https://127.0.0.1:1080'}).content)

(2)如果使用的库没有提供设置代理的接口,但是底层使用了urllib、requests等库,可以尝试设置HTTP_PROXY 和HTTPS_PROXY环境变量,常用的网络库会自动识别这些环境变量,使用变量设置的代理发起请求,设置如下:

lua 复制代码
import os
os.environ['http_proxy'] = 'http://127.0.0.1:1080'
os.environ['https_proxy'] = 'https://127.0.0.1:1080'

(3)如果上述两种方法都没有用,那么还可以使用一些可以监听、拦截和修改网络包的工具和库如(Fiddler、mitmproxy、Sniffmaster)来拦截http请求包并修改地址,达到使用代理的效果。Sniffmaster是一款全平台抓包工具,支持HTTPS、TCP和UDP协议抓包,无需设置代理即可解密HTTPS流量,还提供代理抓包功能,适用于多种设备。

相关推荐
金銀銅鐵42 分钟前
[Java] 如何理解 class 文件中字段的 access flags?
java·后端
不懒不懒1 小时前
基于 Flask —— 异步任务处理接口服务
后端·python·flask
Xidaoapi1 小时前
Python FastAPI性能优化实战:8个让你的API快3倍的技巧
后端·程序员
William Dawson1 小时前
【通俗易懂!Spring四大核心注解源码解读:@Configuration、@ComponentScan、@Import、@EnableXXX实战】
java·后端·spring
倚栏听风雨2 小时前
Mac 本地开发:用 Nginx 配置自定义域名代理到本地服务
后端
fliter2 小时前
在 Rust 异步接口的丛林中生存:从同步 I/O 到手写异步状态机
后端
菜菜小狗的学习笔记2 小时前
八股(九)杂七杂八
java·后端·spring
逍遥德2 小时前
Java编程高频的“技术点”-01:自定义全局异常处理器
java·开发语言·spring boot·后端
小旭95273 小时前
商品详情实现与缓存问题(穿透、击穿、雪崩)解决方案
java·数据库·spring boot·后端·缓存
迷渡4 小时前
用 Rust 重写的 Bun 有 13365 个 unsafe!
开发语言·后端·rust