しかし、私がグースに会ったとき、すべてが変わりました。 解析の世界は新しい色で輝きました。 カットの下で、難しいサイトの解析に役立つ簡単な例をいくつか示したいと思います。
ちなみに、パーサーを書いたガスは、それについて映画を作ることにしました。これまでのところ、予告編を楽しむことができます。
サイトにグースを設定する方法
グースがピンチするのを好むことは誰でも知っています-草、祖母、ガチョウ、そしてもちろんサイト。 Gusがビジネスを延期し、サイトを調整するためには、彼に道を示す必要があります。
現時点では、Gusは解析できます。
- PhantomJSを使用したnodejs内;
- ブラウザで直接(ブラウザプラグインを作成する場合に理想的)
- セレンを使用して
メソッドにはそれぞれ長所と短所があります。 たとえば、Phantomはサーバー上で実行できますが、デバッグするのはあまり便利ではありません。ブラウザーでGooseを起動するには、サイトにGooseを配置する外部ツールが必要です。 Seleniumはかなり普遍的なソリューションですが、現時点では、Gooseは使用方法を学習しているだけです。
したがって、まずサイトでグースを開始するには、まず生息地を選択して作成する必要があります。 可能な環境:
- ファントム環境
- BrowserEnvironment
- 環境セレン
この記事では、PhantomEnvironmentが現時点で最も開発されていると考えます。
import { PhantomEnvironment, Parser } from 'goose-parser'; const env = new PhantomEnvironment({ url: 'http://www.gooseplanet.ru/' }); const parser = new Parser({env});
環境によって、Gooseのエントリポイント-サイトのホームページのURLが決まります。
解析する前に
多くの場合、解析を開始する前に、ページでいくつかのアクションを実行する必要があります。 たとえば、ガチョウの出会い系サイトでの検索。 ガチョウはあなたを探します-ただ尋ねてください。
const actions = [ { type: 'type', // - text: '', // , scope: '.field[name=search]' // }, { type: 'click', scope: 'button[type=submit]', waitForPage: true // } ];
宣言は私たちのすべてです
ガチョウは説明的です。 彼はシンプルで簡潔です。
ピンチする時間です
これで、ガチョウを見つける方法がわかりました。 彼らの住所を撮影する時が来ました。 検索結果のレイアウトが次のようになっているとしましょう。
<ul class="goose-babes"> <li class="goose-babe"> <img src="https://habrastorage.org/getpro/habr/post_images/3df/cbd/088/3dfcbd088e8f5b4ba060a73f8d5e3788.jpg" alt="" class="photo"> <span class="name"></span> <div> <address> №5</address> </div> </li> <li class="goose-babe"> <img src="https://habrastorage.org/getpro/habr/post_images/a48/283/87b/a4828387bbe8658749cc7a42d53ddcd9.jpg" alt="" class="photo"> <span class="name"></span> <div> <address></address> </div> </li> </ul>
このレイアウトのデータの場所に関するルールを設定することにより、Gooseの方向を定めます。
const rules = { scope: '.goose-babe', collection: [[ { name: 'name', scope: '.name' }, { name: 'address', scope: 'address' } ]] };
Gooseを起動します!!
parser.parse({ actions, rules }).then(console.log);
そして結果が得られます:
[ { "name": "", "address": " №5" }, { "name": "", "address": "" } ]
そしてこれはほんの始まりです
もちろん、この記事は読者にGusを知っているだけで、すべての可能性を説明しているわけではありません。 Gusでできることの詳細については、 ドキュメントを参照してください 。 それでも、Gooseが困難な状況のために保存したトリックのいくつかをリストしましょう。
- ガチョウはページネーションを恐れていません-彼はページをスクロールするか、リンクをクリックして新しいコンテンツを受け取ることができます。 Gooseカスタムページネーションを教えることもできます。
- ガチョウはページ間を歩く方法を知っています。それは重要で優雅です。
- ガチョウは、特定の情報を取得するためにキーボードとマウスで必要なアクションを実行できます-彼は非常に速い足を持っています。
- ガチョウは結果を変換できます。
- Gooseは賢くて賢い動物です。構文解析用の新しいチップを伝えると、彼はそれらを使用し始めます-GooseパーサーのAPIは非常に簡単に拡張できます。
- ガチョウは、nodejsへの愛のために共同動物であり、ガチョウの農場で簡単に住み、一度に何百万ものサイトを解析できます。
ガチョウに星を-そして彼はあなたのために世界を引き継ぐだろうgithub.com/redco/goose-parser