0

我目前正在通过出色的 Python 挑战赛 ( http://www.pythonchallenge.com/ )。我正在解决的当前问题涉及 urllib 库的使用,但我遇到了问题。我正在尝试使用此库通过我公司的防火墙连接到该站点。让我们从一些代码开始:

proxy = {'http':'http://my.companys.proxy/proxy.pac'}
urllib.urlopen('http://www.pythonchallenge.com', proxies=proxy).read()

这会产生一个 http 响应,但奇怪的是它是 Apache HTTP 服务器测试页面:

...Red Hat Enterprise Linux测试页面...此页面用于测试 Apache HTTP 服务器在安装后的正常运行等...

因此,我似乎成功地在我们的防火墙之外实现了 http 连接,但获得的 http 响应与我的浏览器不同。另一个线索(或没有)是当我尝试连接到 about.php 页面时:

urllib.urlopen('http://www.pythonchallenge.com/about.php', proxies=proxy).read()

然而,这会产生:

404 未找到... Apache 2.2.3 Red Hat Server,位于 www.pythonchallenge.com 端口 80

上面的两个地址在我的浏览器中都可以正常工作(使用相同的代理)。有什么想法我哪里出错了吗?

4

1 回答 1

1

urllib不支持解析.pac文件。您看到的页面可能是为该.pac配置文件提供服务的服务器的 Apache 页面。

.pac文件包含向您的浏览器提供代理规则的 javascript 代码。您可以尝试直接打开文件,然后查看将为 Python Challenge 站点配置的代理。有关文件格式的更多详细信息,请参阅http://en.wikipedia.org/wiki/Proxy_auto-config

一旦您确定将使用哪个代理服务器,请将其配置为映射的服务器。proxies

于 2013-03-28T10:30:33.517 回答