urllib 的问题

0 投票
2 回答
1090 浏览
提问于 2025-04-15 22:58

我写了这段代码:

import urllib
proxies = {'http': 'http://112.65.135.54:8080/'}
opener = urllib.FancyURLopener(proxies)
r = opener.open("http://www.python.org/")
print r.read()

当我运行它的时候,这个程序运行得很好,还给我发送了 python.org 的源代码。但是当我使用这个:

import urllib
proxies = {'http': 'http://80.176.245.196:1080/'}
opener = urllib.FancyURLopener(proxies)
r = opener.open("http://www.python.org/")
print r.read()

这个程序却没有给我发送 python.org 的源代码。我该怎么办呢?

2 个回答

1

可以推测,第一个IP地址和端口指向一个正常工作的代理,而第二组则不是(因为它们在私有IP上,所以其他人当然无法检查)。所以,建议你和负责你本地网络的人沟通一下,获取你应该使用的HTTP代理的确切IP和端口信息!

编辑: 哎呀,问题被编辑过,IP地址被“隐藏”了(现在又回来了,确实不在私有网络上!)——所以我的回答是基于那个情况的。无论如何,现在也不需要再深入挖掘,因为提问者已经发现其中一个是socks代理,而不是http代理,自然不能把它当作后者来处理;-)

1

哈哈,我找到了答案,我必须用“socks”而不是“http”:

首先,导入一个叫做urllib的库。然后,我设置了一个代理,代理的类型是'socks',地址是 http://80.176.245.196:1080/

接着,我用这个代理创建了一个打开网页的工具。然后,我打开了一个网址 http://www.python.org/

最后,我打印出网页的内容。

这段代码运行得很好。

撰写回答