2010-02-09 76 views
0

我已经机械化设置和使用python。我添加了对使用代理的支持,但是如何检查我实际使用代理?python机械化代理问题

下面是一些代码我使用:

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

我开始怀疑,如果它是工作,因为只是做一些测试我键入:

ip = 'asdfasdf' 

,并没有丢一个错误。那么我该如何去检查它是否真的使用我传入的代理的IP地址或我的计算机的IP地址?有没有办法在机械化返回您的IP信息?

+0

如果使用通过'http://'为重点,然后机械化不会承认它作为一个代理类型。你必须使用'{“http”:.....}' – FallenAngel 2012-06-19 12:58:43

回答

0

我不知道如何处理这个问题与机械化,但你可以读下一个链接,介绍如何做没有机械化(但仍然在python):

Proxy Check in python

简单的解决方案提供在上述链接可以很容易地适应您的需求。

因此,以替代线路:

print "Connection error! (Check proxy)" 

你可以通过

SucceededYesNo="NO" 

更换和替代

print "All was fine" 

只是

SucceededYesNo="YES" 
更换3210

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

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

2

也许这样吗?

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

你需要调试的更多信息

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