python机械化代理问题

时间:2010-02-09 06:04:06

标签: python django proxy mechanize

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

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

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

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

ip = 'asdfasdf'

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

2 个答案:

答案 0 :(得分:2)

也许是这样的?

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

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

br.set_debug_http(True)
br.set_debug_redirects(True)

答案 1 :(得分:0)

我不知道如何使用mechanize处理这个问题,但你可以阅读下一个链接,解释如何在没有机械化的情况下(但仍然在python中):

Proxy Check in python

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

因此,而不是行:

print "Connection error! (Check proxy)"

你可以用

代替
SucceededYesNo="NO"

而不是

print "All was fine"

只需替换

SucceededYesNo="YES"

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

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