Skip to main content
 首页 » 编程设计

Python简单字符串格式化错误

2025年05月04日19lori

这是我的脚本,它应该解析 .txt 文件中的域列表(每个域由返回分隔),将它们分成单独的域名,向带有域名的 whois 站点发送请求,检查响应查看它是否可用,如果可用,则将其写入新文件。所以我得到了一个只有可用名称的列表。

问题?这很简单我只是不太了解语言,我不知道如何以字符串格式获取域名,以便对 whois 站点的请求是这样的:

http://whois.domaintools.com/google.com

显然 %s 没有工作。

代码:

#!/usr/bin/python 
import urllib2, urllib 
print "Domain Name Availability Scanner." 
print "Enter the Location of the txt file containing your list of domains:" 
path = raw_input("-->") 
 
wordfile = open(path, "r") 
words = wordfile.read().split("n") 
words = map(lambda x: x.rstrip(), words) 
wordfile.close() 
 
for word in words: 
    req = urllib2.Request("http://whois.domaintools.com/%s") % (word) 
    source = urllib2.urlopen(req).read() 
    if "This domain name is not registered" in source: 
    f = open("success.txt", "a") 
    f.write("%s\n") % (word) 
    f.close() 
  break 

终端错误:

python domain.py 
Domain Name Availability Scanner. 
Enter the Location of the txt file containing your list of domains: 
-->a.txt 
Traceback (most recent call last): 
  File "domain.py", line 13, in <module> 
    req = urllib2.Request("http://whois.domaintools.com/%s") % (word) 
TypeError: unsupported operand type(s) for %: 'instance' and 'str' 

请您参考如下方法:

修复括号:

req = urllib2.Request("http://whois.domaintools.com/%s" % (word)) 

还有:

f.write("%s\n" % word) 

:)