python 使用代理的几种方式_python proxy-程序员宅基地

目录

HTTP全局代理:环境变量方式

HTTP全局代理:代码实现方式

SOCKS全局代理

针对部分请求设置代理


本文介绍几种在Python里使用代理的方式,假定代理运行在本机,HTTP代理端口为1231, SOCKS5代理端口为8080。

HTTP全局代理:环境变量方式

在命令行里配置如下环境变量,然后执行Python脚本,Python在进行网络请求时就会使用配置的代理。

export http_proxy="http://127.0.0.1:1231"
export https_proxy="http://127.0.0.1:1231"

HTTP全局代理:代码实现方式

也可以在Python代码里添加如下内容,效果与上面的方式相同:

import os
os.environ["http_proxy"] = "http://127.0.0.1:1231"
os.environ["https_proxy"] = "http://127.0.0.1:1231"

SOCKS全局代理

通过设置环境变量的方式通常只能使用HTTP代理。要使用全局SOCKS代理可以使用tsocks.

安装tsocks后,编辑/etc/tsocks.conf,以使用端口为8080的本地SOCKS5代理为例:

server = 127.0.0.1
server_port = 8080 
server_type = 5

配置完成后在原来的脚本执行命令前添加tsocks即可使用,例如:

tsocks python3 myscript.py

针对部分请求设置代理

前面的几种方式会为所有的HTTP请求设置代理,如果只想让部分请求使用代理,可以使用requests的proxies参数:

import requests
proxies = {'http': "socks5://127.0.0.1:8080",
           'https': "socks5://127.0.0.1:8080"}
print(requests.get(url, proxies=proxies).content)

例如下载图片,可使用:

with requests.get(url, proxies=proxies, stream=True) as r:
    if r.status_code != 200:
        return
    with open(path, 'wb') as f:
        for chunk in r.iter_content(chunk_size=8192): 
            f.write(chunk)

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/whatday/article/details/112169945

智能推荐

一起talk C栗子吧(第四十七回:C语言实例--走迷宫一)-程序员宅基地

文章浏览阅读1.2k次。图文并茂走迷宫_一起talk c栗子吧

基于SpringBoot+微信小程序的失物招领小程序(前后端分离)-程序员宅基地

文章浏览阅读666次,点赞29次,收藏20次。JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。

【C语言】数据在内存中的存储-程序员宅基地

文章浏览阅读1.3k次,点赞72次,收藏27次。字节序——是以字节为单位,来讨论存储顺序的其实超过一个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,而数据的高位字节内容,保存在内存的低地址处。小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。

SimpleDateFormat 24小时和12小时转换_androidstudio导入simpledateformat-程序员宅基地

文章浏览阅读1k次。SimpleDateFormat 24小时和12小时转换HH 代表 24 小时制 , hh 表示 12 小时制public class SimpleDateFormat_12_24_ { public static void main(String[] args) { SimpleDateFormat sdf_24 = new SimpleDateFormat("HH:mm:_androidstudio导入simpledateformat

基于YOLOv5+单目的物体距离和尺寸测量_yolov5计算与识别物体的距离-程序员宅基地

文章浏览阅读1.8k次,点赞9次,收藏23次。YOLOv5是目前应用广泛的目标检测算法之一,其主要结构分为两个部分:骨干网络和检测头。骨干网络采用的是CSPDarknet53,这是一种基于Darknet框架的改进版卷积神经网络。CSPDarknet53通过使用残差结构和跨层连接来提高网络的表达能力,并且采用了空洞空间金字塔池化(ASPP)来实现多尺度的信息提取。这样设计的骨干网络具有较强的特征提取能力,可以有效地提取出图像中的目标信息。检测头是YOLOv5的另一个关键组成部分,主要用于从骨干网络特征图中提取目标检测信息。_yolov5计算与识别物体的距离

中文路径,QString转为const char *出现乱码解决方法_qstring中文转 const char乱码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏3次。vs2017+qt5.9,链接库为GDAL,读取dem高程时,发现内存使用错误,经过检查。发现在读取中文路径的时候,qstring转const char *的时候,出现乱码。最初使用的是:weixin_33853794作者的方法,链接为:链接1。QString FileName = "mv_" + QString("%1.txt").arg(iPoc);//此处可以实现动态赋值std::string str = FileName.toStdString();const Char *mvFi_qstring中文转 const char乱码

随便推点

MySQL 创建表时出现 Tablespace for `xxx`.`xxx` exists._please discard the tablespace before import.-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏2次。但在 SQLyog 上查看时却是不存在的。这是因为 MySQL 异常停止后,导致某些文件丢失或损害引起的,具体为什么会到至 MySQL 异常停止,只能进一步查看。本地 MySQL 异常停止后,手动启动服务,热庵后执行 sql 脚本时,发现又报错信息,于是手动创建表,发现还是无法创建,报了。表空间已存在,在导入数据之前需要将表空间释放掉。_please discard the tablespace before import.

四足机器人|机器狗|仿生机器人|多足机器人|PPT|汇报|科研汇报PPT|技术汇报_四足机器人关键技术ppt-程序员宅基地

文章浏览阅读2.7k次,点赞11次,收藏28次。四足机器人|机器狗|仿生机器人|多足机器人|PPT|汇报|科研汇报PPT|技术汇报_四足机器人关键技术ppt

org.springframework.data.redis.serializer.SerializationException: Could not read JSON-程序员宅基地

文章浏览阅读1k次。org.springframework.data.redis.serializer.SerializationException: Could not read JSON将数据存储到redis中报错,由于对象(实体)中缺少json的某个字段属性引起解决办法。@JsonIgnoreProperties(ignoreUnknown = true) _org.springframework.data.redis.serializer.serializationexception: could not

Angular官网学习4:Angular入门,你的第一个应用(4)输出_angular notifychange$-程序员宅基地

文章浏览阅读375次。在本节中,将设置商品提醒组件,当用户点击‘Notify Me’的时候,像商品列表组件发出事件。1、打开 product-alerts.component.ts, 从 @angular/core 中导入 Output 和 EventEmitter。2、在组件类中,用 @Output 装饰器和一个事件发射器(EventEmitter)实例定义一个名为 notify 的属性。这可以让商品提醒组件在 ..._angular notifychange$

[flask 优化] 由flask-bootstrap,flask-moment引起的访问速度慢的原因及解决办法-程序员宅基地

文章浏览阅读661次。一周时间快速阅读了400页的《javascript基础教程》,理解了主要概念。解决了一个很久之前的疑问。我的网站是使用flask框架搭建的,介绍flask web的一本著名的书(之前提到过)作者搭建个人博客时,向读者推荐了flask-bootstrap,flask_moment这两个库,前者能快速的解决前端样式问题,后者提供了时间戳功能。但在某种情况下,比如网络延迟或者运营商的问题,访问网..._bootstrap 速度慢 maxcdn

前端 音频/视频(Audio/Video)开始加载以及播放的过程_video.addeventlistener-程序员宅基地

文章浏览阅读1.7k次。前端 音频/视频(Audio/Video)开始加载以及播放的过程_video.addeventlistener