【发布时间】:2011-11-15 13:41:45
【问题描述】:
我编写连接到 Web 服务器的应用程序(我是他服务器的所有者)发送用户提供的信息,处理该信息并将结果发送回应用程序。处理结果所需的时间取决于用户请求(从几秒到几分钟)。
我使用无限循环来检查文件是否存在(可能有更智能的方法...可能我可以估计请求可能花费的最长时间并避免使用无限循环)
代码的重要部分如下所示
import time
import mechanize
br = mechanize.Browser()
br.set_handle_refresh(False)
proxy_values={'http':'proxy:1234'}
br.set_proxies(proxy_values)
While True:
try:
result=br.open('http://www.example.com/sample.txt').read()
break
except:
pass
time.sleep(10)
在代理之后,循环永远不会结束,但如果我为这样的事情更改代码,
time.sleep(200)
result=br.open('http://www.example.com/sample.txt').read()
即我等待足够的时间以确保在尝试读取文件之前创建文件,我确实得到了文件:-)
似乎如果 mechanize 每次都要求一个不退出的文件 mechanize 会再次询问我将没有文件...
我使用 Firefox 复制了相同的行为。我要求一个不存在的文件,然后创建该文件(记住我是服务器的所有者......)我无法获取该文件。 并且使用 mechanize 和 Firefox 我可以删除文件...
我认为问题与代理缓存有关,我认为我无法删除该缓存,但可能有一些方法可以告诉代理我需要重新检查文件是否存在......
还有其他解决此问题的建议吗?
【问题讨论】:
标签: python proxy mechanize file-exists