2017-04-07 30 views
0

我正在制作一个Scrawler,并希望随机化请求标头。
事情是这样说:
configs.py我已经定义标题:Python:导入一个模块,但避免执行它?

import random 
user_agents = ['1', '2', '3'] 

def get_random_user_agent(): 
    return random.choice(User_Agents) 

headers = {'User-Agent': get_random_user_agent()} 

main.py我有测试代码这样的:

from configs import headers 
for i in range(5): 
    print(headers['User-Agent']) 

结果总是相同的。
我认为导入时变量'headers'已初始化。
我想要的是一个随机的用户代理。
有没有这方面的最佳做法?谢谢。

+0

好吧,亟待解决的问题。我定义了另一个函数来在configs.py中返回头文件。 – Wangwang

回答

0

这就是Python的工作方式。只要文件被访问,所有代码都会被解析,函数中的任何代码都会立即执行。这就是为什么你可以有这样一个python脚本:

import random 
print(random.randint(1,10)) 

你可以用python执行该文件来获得随机数。

只要定义你头的功能:

def get_headers(): 
    return {'User-Agent': get_random_user_agent()}