The Foolは、jsonを渡すとスクレイピングしてきてくれます。
- Nightmare.jsは外から注入して使うようになりました!
サイト内の情報を取得します。
{
"data": [
["goto", "https://www.google.co.jp/"],
["type", "form[action='/search']", "fool"],
["click", "form[action*='/search'] [type=submit]"],
["wait", "._NId h3 a"],
["snatch", "._NId h3 a", "innerText"]
]
}
import Nightmare from 'nightmare';
const data = {
data: [
["goto", "https://www.google.co.jp/"],
["type", "form[action='/search']", "fool"],
["click", "form[action*='/search'] [type=submit]"],
["wait", "._NId h3 a"],
["snatch", "._NId h3 a", "innerText"]
]
};
const fool = new Fool(Nightmare({ show: true }));
fool.travel(data)
.then(result => {
console.log(result);
});
/**
* CONSOLE
*
[ [ 'foolの意味 - 英和辞典 Weblio辞書',
'FOOLの番長ブログ - アメーバブログ',
'foolの意味・用例|英辞郎 on the WEB:アルク',
'foolの意味 - goo辞書 英和和英',
'FooL',
'FOOLとは (フールとは) [単語記事] - ニコニコ大百科',
'フール(FOOL)|ホットペッパービューティー',
'FOOL THE PUBLIC OFFICIAL WEB SITE - Jimdo',
'Shaqtin\' A Fool - NBA.com',
'Fool.com: Stock Investing Advice | Stock Research' ] ]
*/
nightmare.jsを使用しています。下記は主なコマンドです。 Intaract with the pageの詳細は、nightmareをご参照ください。
https://github.com/segmentio/nightmare/blob/master/Readme.md#interact-with-the-page
概要 | intaract with the page | json.dataの例 |
---|---|---|
WEBページを開く | goto | ["goto", "https://www.google.co.jp/"] |
テキストボックスに入力 | type | ["type", "form[action='/search']", "fool"] |
セレクターで指定された 要素の表示を待つ |
wait | ["wait", "._NId h3 a"] |
セレクターで指定された 要素をクリックする |
click | ["click", "form[action*='/search'] [type=submit]"] |
セレクターで指定された 単一の要素のpropertyを取得する |
scrape | ["scrape", "._NId h3 a", "innerText"] |
セレクターで指定された 要素のpropertyを配列で取得する |
snatch | ["snatch", "._NId h3 a", "innerText"] |
ゼロを知れ!いずれの遣り方も、無知であれば許される。 - アレイスター・クロウリー 『トートの書』(国書刊行会、1991年)