【发布时间】:2012-08-31 14:31:36
【问题描述】:
查看此代码
PROXY_HOST, PROXY_PORT = choice(proxies).rstrip().split(":")
fp = webdriver.FirefoxProfile()
# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", PROXY_PORT)
fp.set_preference("network.proxy.ftp", PROXY_HOST)
fp.set_preference("network.proxy.ftp_port", PROXY_PORT)
fp.set_preference("network.proxy.ssl", PROXY_HOST)
fp.set_preference("network.proxy.ssl_port", PROXY_PORT)
代理是123.123.123.123:1234\n 形式的代理列表。奇怪的是,如果我硬编码两个变量 PROXY_HOST 和 PROXY_PORT 它将使用代理,如果我尝试从我喜欢的文件中读取它
with open("proxies.txt") as f:
proxies = f.readlines()
代理设置被忽略。如果我打印这两个变量,它们是正确的,但没有使用。
那么有什么我看不到的吗,硬编码 ip 和端口或从文件/列表中读取它有什么不同。
【问题讨论】:
-
我不太明白你的意思,但我想你在读取文件时遇到问题,因为每个文件行的最后一个字符可能是 \n 或类似的东西。问候,
-
你将它们硬编码成什么,文件的示例内容是什么?
-
请告诉我们
proxies以防此列表是硬编码的,proxies以防您从文件中读取。最好是使用repr()打印两个变量。 -
我所说的硬编码的意思是:PROXY_HOST = "123.123.123.123",端口也是如此。给我一分钟,我会发布更多信息
-
好的 - @Jan-PhilipGehrcke 向我指出了解决方案,非常感谢:代理端口读取后是一个字符串,我只需将其转换为整数