Python脚本在一些迭代之后关闭

Python脚本在一些迭代之后关闭,python,Python,我写了一段代码,当我运行它时,它会平稳运行,直到达到目标 “czz”,我是一个初学者,我不知道是什么问题。。如果有人能告诉我我做错了什么。基本上,这段代码背后的想法是试图找到所有带有“.ro”的3个字母的域 你必须关闭连接 response.close() 我希望您没有试图发送垃圾邮件或其他东西。您可以尝试向urlopen添加timeout参数: response = urlopen(req, timeout=2) 例如,cze.ro似乎要花很长时间。一个问题是,在不再需要连接后,您没有关闭

我写了一段代码,当我运行它时,它会平稳运行,直到达到目标 “czz”,我是一个初学者,我不知道是什么问题。。如果有人能告诉我我做错了什么。基本上,这段代码背后的想法是试图找到所有带有“.ro”的3个字母的域


你必须关闭连接

response.close()

我希望您没有试图发送垃圾邮件或其他东西。

您可以尝试向
urlopen
添加
timeout
参数:

response = urlopen(req, timeout=2)

例如,
cze.ro
似乎要花很长时间。

一个问题是,在不再需要连接后,您没有关闭连接,您可以使用
response.close()
来关闭连接。在
finally
块中执行此操作,以确保始终执行此操作

try:
    # do stuff
except:
    # do stuff
finally:
    response.close()
此外,与嵌套的
for
循环相比,这里有一种生成所有三个字母字符串的更好方法:

>>> from string import ascii_lowercase
>>> from itertools import product
>>> three_letters = (''.join(x) for x in product(ascii_lowercase, repeat=3))
>>> for x in three_letters:
...     print(x)

'aaa'
'aab'
'aac'
'aad'
'aae'
...

您是否可以发布任何错误消息?请注意,此脚本不会检查哪些域名可用;它只测试默认(:80)端口上有活动网站的域。域很可能被拥有,但不处于活动状态。要知道拥有哪些域,您必须参考罗马尼亚域注册中心whois,该注册中心可在上找到。请注意,罗马尼亚注册中心允许URL中使用重音(非ascii)字符!Hugh,我的想法是,我想创建一个包含所有未注册域的txt文件,我认为基本上很多域都在80端口上,这就是为什么我尝试这样做的原因,但如果你能给我另一个建议,告诉我如何找到所有的域名:)?因为我知道通过这种方式,我会有很多实际上不可用的域名,但我不知道还有什么其他方式可以找到可用的域名,而不检查所有27^3的可能性:我不是垃圾邮件,我想建立一个组织,我想根据我是否能够建立一个网站来选择它的名称。试试这个:是的。我编辑了答案。您要关闭的资源是response。即使在尝试后使用response.close(),它也不起作用
>>> from string import ascii_lowercase
>>> from itertools import product
>>> three_letters = (''.join(x) for x in product(ascii_lowercase, repeat=3))
>>> for x in three_letters:
...     print(x)

'aaa'
'aab'
'aac'
'aad'
'aae'
...