システム情報: Windows 7、GNU Wget 1.11.4、Python 2.6
問題:
wgetショートカットを起動するpythonスクリプトを実行していますが、問題はwget(exeから純粋にコマンドラインで実行した場合でも)が「&」を切り捨てることです。たとえば、以下のコードを実行すると、次のようになります。
C:\Program Files\GnuWin32\bin>wget.exe http://www.imdb.com/search/title?genres=action&sort=alpha,asc&start=51&title_type=feature
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc syswgetrc = C:\Program Files\GnuWin32/etc/wgetrc
--2013-01-18 12:48:43-- http://www.imdb.com/search/title?genres=action www.imdb.com を解決しています... 72.21.215.52 www.imdb.com に接続しています|72.21.215.52|:80... 失敗: 接続が拒否されました。
=alpha,asc 指定されたファイルが見つかりません。
システムはファイル 51 を見つけることができません。'title_type' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。
ご覧のとおり、wget は '&' の前のすべてのテキストを問題の URL としてカウントし、windows は後半を新しいコマンドとして受け取ります。
wget がその文字列全体を URL としてキャプチャできるようにする何らかの方法が必要です。
前もって感謝します。
編集:コマンドラインでコマンドを括弧で囲んで呼び出すと、うまく機能しますが、Pythonを介してスクリプトを実行すると:
subprocess.Popen(['start /B wget.lnk --directory-prefix=' + output_folder + ' --output-document=' + output_folder + 'this.html "http://www.imdb.com/search/title?genres=action&sort=alpha,asc&start=51&title_type=feature"'], shell=True)
次のエラーが表示されます。
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
"http://www.imdb.com/search/title?genres=action&sort=alpha,asc&start=51&title_type=feature": サポートされていないスキームです。