HTMLソース取得が早い方法について


HIRO  2014-11-02 01:18:21  No: 46816  IP: [192.*.*.*]

お世話になります。

現在、下記の環境にてEmbeddedWbを使用しAmazonからソースを

取得しようとしているのですが、EmbeddedWbにて表示してから

ソースを取得している点やAmazon自体のソースが長い事もあり

例えば、10ページから1つずつASINを取りだすのに40秒程かかります。

個人的には、この半分の時間で取得できるのではないかと思い

HTTPGetやTELNET(Delphiから利用)を利用してテストして見ましたが

思い通りの速度が得られません。

何か良い方法はないでしょうか?

どなたかご存じの方、ご教示願います。


環境:
OS:Windows7,Windows8,Windows2012
Delphi XE


以上、よろしくお願い致します。

編集    削除
igy  2014-11-02 08:32:25  No: 46817  IP: [192.*.*.*]

早いかは、わかりませんが、
IndyのTIdHTTPでGet メソッドを使うのは、いかがですか?

編集    削除
通りすがり  2014-11-02 09:08:32  No: 46818  IP: [192.*.*.*]

> 個人的には、この半分の時間で取得できるのではないかと思い
この根拠は何ですか?

編集    削除
HIRO  2014-11-02 16:16:22  No: 46819  IP: [192.*.*.*]

igy さん

ありがとうございます。

>IndyのTIdHTTPでGet メソッドを使うのは、いかがですか?
最初に記載したHTTPGetというのが同じものになりますので
そちらでは既にテストしております。

通りすがり さん
>> 個人的には、この半分の時間で取得できるのではないかと思い
>この根拠は何ですか?
Unix系と比べるべきではないと思うのですが、Unix上で同じような事を
シェルスクリプトで行うと20秒もかかりません。


cuiとguiを比べるのもそもそも違いが出るのは当たり前ですが
windows+guiというのは、Macやサーバ使われる方は感じておられると
思いますが、遅すぎてどうしようもないですね。

ダウンロードとなると明らかに変わってきますので、Windowsでも
どうにかすれば改善できるのではないかと考えてしまいます。

コマンドレベルで実装できておられる方がおららればお願い致します。
とすると、EmbeddedWbは使うべきでないのかもしれません。

HTML表示は必要なく、ソース取得のみで構いません。

私自身もwget辺りでもう少し模索しようと思いますが、何か良い案があれば
ご教示願います。

編集    削除
igy  2014-11-02 18:39:35  No: 46820  IP: [192.*.*.*]

ちなみに、その40秒のうち、
ダウンロードに何秒かかり、
1つずつASINを取りだすのに何秒かかっていますか?

編集    削除
通りすがり  2014-11-03 09:48:38  No: 46821  IP: [192.*.*.*]

>>> 個人的には、この半分の時間で取得できるのではないかと思い
>>この根拠は何ですか?
>Unix系と比べるべきではないと思うのですが、Unix上で同じような事を
>シェルスクリプトで行うと20秒もかかりません。
なるほど、スクリプトとEmbeddedWbのようなGUIパーツをくらべているのですね。

>cuiとguiを比べるのもそもそも違いが出るのは当たり前ですが
当たり前ですね。

純粋にダウンロードだけ、パースだけをコンソールプログラムで実装してみるテスト、というのは有効だと思います。
igyさんも書かれていますが、とりあえずダウンロードだけをIdHttpで行ってみて、所要時間を計ってみてはいかがでしょう?
また*nixのスクリプトでもダウンロードだけの時間を計ったらどの程度違いますか?

編集    削除
HIRO  2014-11-19 20:23:46  No: 46822  IP: [192.*.*.*]

igyさん、通りすがりさん

ご返事が遅くなって申し訳ありません。

EmbeddedWbで、ページ取得に5秒。ASIN解析に5秒掛かっているようです。
ページ表示自体もなるべく簡略化して画像表示させていなかったりなど
しているのですがそれでも5秒掛かります。

Unix系のスクリプトでは、ページ取得に2秒。ASIN解析に1秒かかっていないようです。

やはりスクレイピングでは遅いという事でAPIの方を使用した方がいいようです。
完全なサンプル等によるテストができていないのでなんとも言えませんが
取得文字数は少しでいいのでAPIに切り替えた方がいいですね。

デメリットとしては、API変更等があると対応しないといけないところが
欠点ですが。

編集    削除
通りすがり  2014-11-19 22:48:08  No: 46823  IP: [192.*.*.*]

> とりあえずダウンロードだけをIdHttpで行ってみて、所要時間を計ってみてはいかがでしょう?
はどうですか?EmbeddedWbのようなGUIパーツでは、ダウンロードだけの純粋な所要時間は
計りようがないですから(ダウンロード中にもHTMLの解析が行われるため)。

まぁAPI経由でいいならそっちのほうが望ましいと思いますけど。

編集    削除
igy  2014-11-20 04:51:40  No: 46824  IP: [192.*.*.*]

>EmbeddedWbで、ページ取得に5秒。ASIN解析に5秒掛かっているようです。

“40秒程かかります。”と最初に書かれていましたが、残りの30秒は何にかかっているのですか?

編集    削除