首页 > 解决方案 > 在请求中使用局部变量

问题描述

我尝试在我的代码中导入代理。

我尝试在我的请求中选择一个随机代理,但我没有到达那里

这是我的代码(python)

import random
import requests

#create global variable to use in proxy_slct
rdmproxy = "1.1.1.1:1"

#get proxies from file + randomize and select
def proxy_slct():
    global rdmproxy
    threading.Timer(5.0, proxytimer).start()
    proxy_file = open('proxies.txt').read().splitlines()
    rdmproxy = random.choice(proxy_file)
    f.close()
proxytimer()

#request
try:
    login = requests.get("https://httpbin.org/ip", proxies=rdmproxy, timeout=5)
    print(login.json())

标签: pythonvariablesrefreshgloballocal

解决方案


为什么要rmdproxy在代码顶部定义然后覆盖它?

试试这个:

import random
import requests

def proxy_slct():
    global rdmproxy
    threading.Timer(5.0, proxytimer).start()
    with open('proxies.txt') as file:
        proxy_file = file.read().splitlines()
        rdmproxy = random.choice(proxy_file)
proxytimer()

try:
    login = requests.get("https://httpbin.org/ip", proxies=rdmproxy, timeout=5)
    print(login.json())

如您所见,您没有rmdproxy在全局范围内初始化,而是在使用关键字 global 的局部范围内初始化,您为该变量分配了一个随机值。

还尝试打印该变量,以便您可以查看它的值是否是您想要的值。


推荐阅读