2016-03-25 14 views
1

イムは、今の問題は、これらのxmlですファイルサイズはそれぞれ約30Mbです。ダウンロードには約1分かかりますので、もっと速くダウンロードする必要があります... urllib.urlretrieveを使用してダウンロードします。高速ダウンロードxmlファイル

それらのデータベース内にURLが含まれているxmlデータベースを構築するには、これらのファイルが必要です。読み込みを試みましたが、urllib.urlopenでドローロードするよりも高速である必要があります。

これらのファイル(ダウンロードまたは読み取り)を使用して、より高速なパフォーマンスでデータベースを構築するアイディアがありますか?

注:ちょうどそれらのファイルを使用する必要がある、私はすでに、高速私のデータベースを構築するコードを書く

私はOS XとLinux(VMで実行している)、および優れたを使用してFirefoxを介したウイルスのXMLをダウンロードしようとしました
+0

あなたが言及しているサイトにはログインが必要なので、他の人がダウンロード速度をテストする方法はありません。 Webブラウザや、 'wget'や' curl'などのコマンドラインツールを使ってダウンロードを高速化しますか?サーバーが単にダウンロード速度を抑制することができるかもしれません。 – MattDMo

+0

あなたはログインする必要はありません。サイトにログインせずにこのファイルをダウンロードします... http://support.clean-mx.de/clean-mx/viruses.phpとhttp://support.clean-mxを見てください。 de/clean-mx/phishing.php私はちょうどxmlを追加して、サイトはxml出力を返します(xml出力と同じクエリを参照してください) また、私はwgetを介して試してみましたが、 'urllib.urlretrieve' –

+0

なぜそれらをより速くダウンロードする必要がありますか?一度ダウンロードするだけで十分です(あなたの用途に応じて)。ファイルを頻繁にダウンロードするのではなく、別の方法がありますか? – syntonym

答えて

1

requestsモジュール(私はurllibよりもはるかに好きです)、すべてのメソッドが47Mファイルをダウンロードするのに非常に時間がかかりました。実際、いくつかのプロセスが凍ったりクラッシュしたりしました。私は60メガビット/秒のインターネット接続を持っており、調整されていないサーバーから同様のサイズのファイルをダウンロードするのは通常10-15秒かかるだけです。だから、私はあなたの結果がそれほど改善されないだろうと思っています、それはサーバー問題のようです。私は、ウェブサイトの所有者に連絡し、接続の問題を診断するためにあなたと協力してくれるかどうかを確認することをおすすめします。

EDIT

OK、これは奇妙です。私は自分のLinux VMを再起動し、端末で次のコマンドを実行しました。

import requests 
url = "http://support.clean-mx.de/clean-mx/xmlviruses.php?" 
r = requests.get(url).content 
print(r) 

ダウンロードは15秒未満で終了しました。だから、何が起こっているのかは分かりません...

+0

私はこれを試して、それは今完璧に動作します!あなたは要求について正しいのです...彼らはモジュールにいくつかの魔法を持っていますありがとうございました! –

+0

@johndoe_askingわかりません*なぜ*動作するのですか?うまくいけばうれしいです! – MattDMo