1

システム情報: 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": サポートされていないスキームです。

4

1 に答える 1

1

URL を切り捨てるのは Wget ではなく、コマンド インタープリター&です;。これは=alpha,ascThe system cannot find the file specified.、次の行のエラーによって示されます。

これを防ぐには、URL 全体を引用します。

wget.exe "http://www.imdb.com/search/title?genres=action&sort=alpha,asc&start=51&title_type=feature"
于 2013-01-18T11:08:47.480 に答える