0

我已经进行了机械化设置并使用了 python。我正在添加对使用代理的支持,但是如何检查我是否实际使用了代理?

这是我正在使用的一些代码:

ip = 'some proxy ip address'
br.set_proxies({"http://": ip} )

我开始怀疑它是否有效,因为只是为了进行一些测试,我输入了:

ip = 'asdfasdf'

它没有抛出错误。那么我该如何检查它是否真的使用了我传入的代理的 IP 地址或我的计算机的 IP 地址?有没有办法在机械化中返回您的 ip 信息?

4

2 回答 2

2

也许像这样?

br = mechanize.Browser()
br.set_proxies({"http": '127.0.0.1:80'})

您需要调试以获取更多信息

br.set_debug_http(True)
br.set_debug_redirects(True)
于 2010-10-03T13:08:52.763 回答
0

我不确定如何使用 mechanize 处理这个问题,但您可以阅读下一个链接,该链接解释了如何在没有 mechanize 的情况下执行此操作(但仍在 python 中):

python中的代理检查

上述链接提供的简单解决方案可以轻松适应您的需求。

因此,而不是行:

print "Connection error! (Check proxy)"

你可以替换为

SucceededYesNo="NO"

而不是

print "All was fine"

只需替换为

SucceededYesNo="YES"

现在,您有一个可用于进一步处理的变量。

但是,我担心这不会涵盖目标网页关闭的情况,因为可能会出于两个原因发生相同的错误(因此人们不知道 NO 结果是来自不工作的代理服务器还是来自糟糕的网络page),但仍然可能是一个解决方案:如何使用上述代码检查工作网页?即 www.google.com?这样,您可以消除一个原因,而另一个原因仍然存在。

于 2010-03-16T13:39:49.147 回答