求教 Python 调试技巧,能否有简单的方式,决定 code 使用 proxy 代理服务器?

2020-02-20 17:53:39 +08:00
 qazwsxkevin
写 code 的场景有两个地方,A side 和 B side
A 的互联网线路没有做 fliter rule.
B 的互联网线路做了 fliter rule.

code 是正常的,
B side 有些麻烦,在 B side 运行起来后经常触发 rule 导致 request 被 block.
为此,我做了一个可用的 proxy (sock5 类型)
为了做好调试阶段的事情,我需要在 B side 里使 code 的全部 request 动作都使用这个 proxy
把 laptop 带到 A side,是用不了这个 proxy 的

多写两三句环境判断不是问题
问题是,我总不能每次写 request,都要做这种特殊场景的判断,啰嗦又影响性能
是否有一种好办法,弄一下,pycharm 里调试的代码全部都走 proxy 呢?

by the way:发现 pycharm 里面的 proxy 设置,不是给 code 用的,是给 pip 服务以及 pycharm 软件本身用的,不知道这个判断有无错?
616 次点击
所在节点    Python
7 条回复
NeezerGu
2020-02-20 18:17:50 +08:00
非专业人士口胡:
如果是我的话,
开场一个全局变量 server=1 or 0 根据丢在哪个服务器手动改

然后整个装饰器,比如:
def chose(f):
def wapper(*args,**kwargs):
global server,proxy
if server=1:
return f(proxy=proxy,*args,**kwargs)
else:
return f(*args,**kwargs)
return wapper

最后这样(因为我通常只用 get 和 post……,headers 和 cookies 都是手动处理,,没用过 session,可能显得很随意+不专业)
class s:
@staticmethod
@retry
def get(*args,**kwargs):
return requests.get(*args,**kwargs)

@staticmethod
@retry
def post(*args,**kwargs):
return requests.post(*args,**kwargs)
NeezerGu
2020-02-20 18:19:49 +08:00
艹,辛辛苦苦拍了半天空格,丢进来格式全无
![image.png]( https://i.loli.net/2020/02/20/VZFXb54IyaeJPUu.png)
NeezerGu
2020-02-20 18:21:52 +08:00
二连艹,经常写 sql,做 excel,if server=1 就请假装没看到吧
scukmh
2020-02-20 19:05:46 +08:00
cz5424
2020-02-20 19:10:12 +08:00
弄个环境变量,有的话自动加载就好了
AlexaZhou
2020-02-20 19:17:38 +08:00
通过 proxychain 运行 B side 的代码即可
wzwwzw
2020-02-21 01:28:10 +08:00
读系统变量,来判断当前环境。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/646167

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX