1

ホストが稼働しているかどうかを確認する Python スクリプトを作成しようとしています。稼働している場合は、Web サイトを results/ ディレクトリにダウンロードします。これを行う方法を学んだら、スパイダーを実行して他のサブプロセスを起動する方法 (チェックが完了した後に nikto/skipfish を起動し、保存されたファイルをロードするなど) を理解することに分岐します。

#! /usr/bin/python

import os
import sys
import urllib
import urllib2
import subprocess

# Where the magic happens

str1 = raw_input("Enter your target: ")
print "Target = ", str1
print "commencing testing on", str1

# Let's set the user-agent headers
http_headers = {"User-Agent":"Mozilla/5.0"}

request = urllib2.Request(str1)
response = urllib2.urlopen(request)
payload = response.read()

dir_path = os.path.join(self.results)
os.makedirs(dir_path)
**with open(os.join.path(dir_path, 'index.html', 'wb') as file:
        file.write(payload)
print str1, "index written to file"**

# Send an email to notify us when complete
var = "world"
pipe = subprocess.Popen(["./email.sh", var], stdout=subprocess.PIPE)
result = pipe.stdout.read()
print result

次のエラー メッセージが表示されます。

File "./webtest.py", line 43
    with open(os.join.path(dir_path, 'index.html', 'wb') as file:
                                                          ^
SyntaxError: invalid syntax

括弧を閉じた後のエラー (Phil の回答から):

    Traceback (most recent call last):
      File "./webtest.py", line 41, in <module>
        dir_path = os.path.join(self.results)
NameError: name 'self' is not defined
4

1 に答える 1

1

かっこを外しました:

with open(os.join.path(dir_path, 'index.html', 'wb')) as file:

編集

その行は、必要なディレクトリと関係があります。クラスに参加していないため、エラーが発生します(つまり、「自己」は存在しません)。最善の行動は、それを「結果」だけに置き換え、結果がどこにあるかを指定することです。例えば:

results = "/resultsdir/"
dir_path = os.path.join(results)
于 2013-01-29T18:11:48.283 に答える