V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
JCZ2MkKb5S8ZX9pq
V2EX  ›  Python

Python requests mac 版代理忽然挂不上了?

  •  
  •   JCZ2MkKb5S8ZX9pq · 2019-01-11 14:07:30 +08:00 · 991 次点击
    这是一个创建于 2146 天前的主题,其中的信息可能已经有所发展或是发生改变。
    # 以前用这个方法可以
    proxy = {"http":"socks5://127.0.0.1:1080","https":"socks5://127.0.0.1:1080"}
    
    # 现在 PC 版用这个可以
    proxy = {"http":"127.0.0.1:1080","https":"127.0.0.1:1080"}
    
    # MAC 版两种都不行(以前第一种行)
    

    不知道啥时候发生的这个情况,反正搞了半天没搞成。
    两个电脑装的包都一样的。requests[socks] 和 pysocks 都装了且升级了。
    代理用的 ss,PC 版 4.1.3.1,MAC 版 2.6.3,浏览器访问都正常通过。

    • PC。浏览器设置 http 或者 socks5 都能通过,python 里只能不加 socks5,加了通不过。
    • MAC。浏览器设置 http 通不过,socks5 可以通过。python 里都不行。

    是不是我还漏了啥了?

    第 1 条附言  ·  2019-01-11 18:41:10 +08:00

    换了 ssx-ng 终于搞好了,有几点不同:

    • ssx-ng 一定要开启
      ssx-ng的manual模式,类似于win版ss的关闭(未启用系统/自动代理,但仍在运行)。
      之前mac版ssx的时候可以选关闭,不影响chrome访问,但ng关了好像就不行了。
    • ssx-ng也支持http代理,但http/socks/pac三个端口要区分。
      (win版好像http和socks5我都连1080也能连上)

    满足以上两点,PAC/Global/手动三个随意,跟之前一样指定proxy,requests就可以连上了。
    为了多平台统一,我用的http的1080端口。
    {"http":"127.0.0.1:1080","https":"127.0.0.1:1080"}

    测试方法是观察 ssx-ng的设置 和 系统/网络设置/代理 之间的关联。
    然后先通过safari走系统代理测试连通情况。

    6 条回复    2019-01-11 18:05:22 +08:00
    JCZ2MkKb5S8ZX9pq
        1
    JCZ2MkKb5S8ZX9pq  
    OP
       2019-01-11 16:59:17 +08:00
    看了下,Mac 下用
    ```
    proxy = {"http":"socks5://127.0.0.1:1080","https":"socks5://127.0.0.1:1080"}
    ```
    ip.cn 可以看到 ip 已经是海外的了,连 baidu 也连得上( http/https 都可以)。
    但是连外网还是都连不上(浏览器内都可以)。
    bantao
        2
    bantao  
       2019-01-11 17:13:25 +08:00
    测试 windows py3.6 requests socks5 (无认证) 没问题,你那边报什么错
    cdlixucd
        3
    cdlixucd  
       2019-01-11 17:16:20 +08:00
    下载一个软件不是很方便吗?非要搞配置文件
    JCZ2MkKb5S8ZX9pq
        4
    JCZ2MkKb5S8ZX9pq  
    OP
       2019-01-11 17:27:46 +08:00
    @bantao 我 win 的 http 没问题,socks 不晓得为啥不行,mac 上一团问题,不知道是系统更新还是咋的。现在换了 ss-ng 在试。
    youthfire
        5
    youthfire  
       2019-01-11 17:57:08 +08:00
    具体不理解,以前作 gmail 发邮件的程序时我是这样写的,给你参考,python3

    from httplib2 import socks
    import socket

    socket.socket = socks.socksocket
    socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"127.0.0.1",1080)
    JCZ2MkKb5S8ZX9pq
        6
    JCZ2MkKb5S8ZX9pq  
    OP
       2019-01-11 18:05:22 +08:00
    @youthfire 嗯 实在不行只能用其它库试了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5384 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:40 · PVG 15:40 · LAX 23:40 · JFK 02:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.