Python:导入模块但是避免执行它?

时间:2017-04-07 05:20:33

标签: python web-scraping http-headers

我正在制作一个抓取工具,并想要随机化请求标头 事情就这样:
configs.py我定义了标题:

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'已初始化 我想要的是一个随机的用户代理 这有什么最好的做法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

只需在函数中定义标题:

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