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

相关推荐
宸津-代码粉碎机22 分钟前
Spring Boot 4.0 实战技巧全解析
java·大数据·spring boot·后端·python
0xDevNull27 分钟前
Spring 核心教程:@Component vs @Bean 深度解析
java·后端
ltl43 分钟前
哈希表内部:开放寻址、链式、Robin Hood
后端
aq55356001 小时前
Laravel10.X核心特性全解析
java·开发语言·spring boot·后端
常利兵2 小时前
Spring Boot配置diff:解锁配置管理新姿势
java·spring boot·后端
IT_陈寒2 小时前
Vue的响应式更新把我坑惨了,原来是这个问题
前端·人工智能·后端
Geoking.2 小时前
后端Long型数据传到前端js后精度丢失的问题(前后端传输踩坑指南)
java·前端·javascript·后端
lizhongxuan3 小时前
深入 Codex 沙盒
后端