1

これは、.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'
4

3 に答える 3

5

括弧を修正します。

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

と同様:

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

:)

于 2012-06-18T16:25:13.870 に答える
2

使用する必要があります:

req = urllib2.Request("http://whois.domaintools.com/%s" % word)
# ...
f.write("%s\n" % word)
于 2012-06-18T16:25:22.187 に答える
2

使用する:

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

このリンクをチェックしてください。このフォーマットがどのように機能するかを説明する必要があります:http://docs.python.org/release/2.5.2/lib/typesseq-strings.html

于 2012-06-18T16:26:45.197 に答える