10秒后停止阻止操作?

时间:2017-01-20 20:44:25

标签: python

我目前正在编写一个Python 2.7程序,该程序使用Mechanize在网站上查询某些URL信息。伪代码如下:

for URL in urls:
   # first submit a form to query the URL...
   # then wait and parse the results:
   while 1:
      content = response.read(1024)
      # followed by some other simple parsing operations ...

while 1循环中的read()操作是一个阻塞,由于网络和其他条件,有时它会永远运行。我想要实现的是停止等待read()并跳转以查询下一个URL,如果当前的read()操作在10秒后没有返回。如何计算read()操作并查看10秒后content是否为空?我正在考虑使用线程,但我不确定如何继续。有人可以帮忙吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

尝试使用此处描述的超时装饰器 - https://pypi.python.org/pypi/timeout-decorator