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流量,还提供代理抓包功能,适用于多种设备。

相关推荐
GetcharZp8 小时前
抛弃低效SSH!这套Ansible+Web可视化神器,让你天天准点下班!
后端
weixin_4462608512 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
ttwuai13 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
用户83562907805113 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
用户99314415798413 小时前
微服务框架中获取用户信息
后端
xuanWb13 小时前
手写一个 LLM API 网关:Anthropic 与 OpenAI 协议转换的完整实现
后端
苍何14 小时前
给 Codex 换皮肤这门生意,被我开源了
后端
用户83562907805114 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python
程序员David14 小时前
我让 Claude 从架构文档一路干到代码,踩了三个坑才摸清边界
后端