3

Pythonを使用してzipファイルをダウンロードしたい。

このタイプの URL、 http: //server.com/file.zip を使用すると、urllib2.urlopen を使用してローカル ファイルに書き込むことで、これは非常に簡単になります。

しかし、私の場合、このタイプの URL があります: http://server.com/customer/somedata/download?id=121&m=zip、フォームの検証後にダウンロードが開始されます。

私の場合、herokuにデプロイしたいので、C ++で構築されたspynnerを使用できないことを正確に説明すると便利です。このダウンロードは、scrapy を使用したスクレイピング後に開始されます。

ブラウザーからのダウンロードは正常に機能し、その名前の適切な zip ファイルを取得します。Pythonを使用して、htmlとヘッダーデータを取得するだけです...

Python でこのタイプの URL からファイルを取得する方法はありますか?

4

2 に答える 2

1

このサイトは、ダウンロードを呼び出す JavaScript を提供しています。a) シミュレートされたブラウザ環境で JavaScript を評価するか、b) JS が行うことを手動で解析し、それを Python で再実装する以外に選択肢はありません。たとえば、URL とダウンロード キーの文字列抽出、場合によっては AJAX 要求を呼び出し、最後にファイルをダウンロードします。

Web ページ関連の自動化には一般的にMechanizeをお勧めしますが、JavaScript も処理できないため、プラン b) を使用する場合は Scrapy を使用することをお勧めします。

于 2013-04-11T17:22:27.717 に答える