1

こんにちは、いくつかの Web サイトにクエリを実行し、それらから同様のデータを取得してユーザーに提示するプロジェクトに取り掛かります。例: ユーザーが「reebok shoes」という名前でサイズが「9.0」で範囲が「$30 から $75」の場合、アプリケーションはこれらのクエリに対していくつかの Web サイト (これを提供します) をエスケープし、関連するものをフェッチする必要があります。それらからのデータ。データをDBに保存せずに、フォーマットしてユーザーにフェッチする必要があります。私はこれに慣れていないので、どのフレームワークを選択するか、どのツール、またはWebスクレイピングについて知っておくべき重要なことについての指針が必要です。いくつかのツールとフレームワークを調査しましたが、どれがクエリ固有の Web スクレイピングを処理できるかわかりません。

4

2 に答える 2

1

十分な調査を行った後、HTMLタグを抽出してJSONファイルに保存するのに役立つSimplehtmlDom(PHP)パーサーに最終的に落ち着きました。次に、データの書式設定機能を実行し、書式設定された JSON ファイルをフロント エンドに転送し、HTML を使用してデータを表します。simplehtmldom よりもはるかに簡単な Scrapy (Python) も試しました。疑問に思っている人がいたら教えてください。

于 2012-11-05T19:24:40.617 に答える
0

Crowbarを試して、リモート Web サイト上のすべての Javascript を解釈し、静的でない場合は実際のコンテンツを取得してください。次に、Crowbar 自体を使用してスクレイピングを実装しますが、(私のように) Javascript が面倒な場合は、Perl を使用HTML::TagParserしてサイトからコンテンツを取得できます。

たとえば、家電量販店から店舗の住所と店名を取得する必要があったため、次のようにしました。

my $html = HTML::TagParser->new($html);
my $address = $html->getElementsByClassName("mystoremystorecontentcontainer")->innerText();
my $shopname = $html->getElementsByClassName("mystoremystorecontentmiddle text_headline")->innerText();

($html完全な Web サイトを保持する文字列でした。)

データがどのように配置されているか、つまり、データを保持するタグの ID またはクラス名がわかっている場合は、非常に簡単です。

ちょっとした警告: メソッドのinnerText()実装が不十分です。テキストが特殊文字 (たとえば、Äの代わりに迷子の ' ' Ä) でクリーンでない場合、すべての地獄が壊れて失われます。幸運を...

于 2012-10-06T18:20:43.020 に答える