2016-05-08 6 views
0

私は、www.blacklistalert.comにIPアドレスをチェックするためのpythonスクリプトを書こうとしています。目標は、標準入力として1つまたは複数のIPアドレスでスクリプトを実行することです。次に、サイトからの標準出力をコマンドラインに出力させます。Python - サイトへのクエリを実行し、結果を標準出力に出力する

import urllib.parse 
import urllib.request 

ip = str(urllib.request'[$1]') 

url = 'http://www.blacklistalert.org/' 
values = { 'query': '$1' } 

data = urllib.parse.urlencode(values) 
url = '?'.join([url, data]) 
req = urllib.request.Request(url, binary_data) 
response = urllib.request.urlopen(req) 
the_page = response.read() 

print (the_page) 

質問をページに送信し、別のページに結果が表示されています。私は現在、エラーが発生しています:

ip = str(urllib.request'[$1]') 
SyntaxError: invalid syntax 

IPアドレスクエリを実行し、標準出力で応答を得るにはどうすればよいですか?前もって感謝します。

+0

「問題」の性質を説明してください。少なくとも動作していないプロセスのステップを特定し、どのような方法で動作していないかを特定します。 –

+0

私は4行目で構文エラーが発生しています:ip = str(urllib.request '[$ 1]')。私はこの行にIPV4アドレスである変数を送信したいと思います。次のセクションでは、サイトから結果を取得し、コマンドラインで標準出力に送信します。 – Maximillian

答えて

0

Pythonはbashではなく、$1などの変数にstdinの引数を自動的に処理しません(ヒント:Pythonでは$が唯一の場所はドルに基づいて通貨を扱うときです)。代わりに、Pythonはコマンドライン引数をsys.argvリストに置きます。あなたはそこからそれらを読むことができます(sys.argv[0]はスクリプトの名前です、sys.argv[1]などがコマンドラインパラメータです)、または完全なストーリーについてはドキュメントを読んでください。argparseモジュールのようなものを使用することをお勧めします。もう少し複雑なコードがありますが、最終的にはその価値はあります。

関連する問題