最近読んノード爬虫類んので、我々はそれが全体のプロセスの記録である、それを試してみました
1、新しいフォルダbaidunews
2、入力NPMの初期化の下でトップに新しいフォルダを初期化します
3、初期化が必要な依存関係を完全にダウンロードされた後、
NPM Expressをインストールします
NPMチェリオをインストール
NPMたSuperAgentをインストール
baidunewsファイルフォルダの新index.jsで4、
5.ファイルにコードを追加します。
=必要CONST( 'エクスプレス'を表現する); constのアプリケーション = エクスプレス(); // ... letのサーバー = app.listen(3000、関数(){ letのホスト = server.address()アドレス;. せポート = サーバー。.Address()ポート; にconsole.logは( 'あなたのアプリを実行しているHTTP AT IS://%S:%S' 、ホスト、ポート); }); / * * * [説明] -でルーティング * / // 場合GETリクエストはhttp:// localhostを:3000、非同期機能する後 app.get( '/'、非同期(REQ、RES、NEXT)=> { res.send(HotNews); }); // 必要に応じて、サードパーティ製のパッケージの導入 必要たSuperAgent =一定( 'たSuperAgent' ); HotNewsを聞かせて = []; // ホットニュース せLocalnews = []; // ローカルニュース / * * * index.js * [説明] -使用superagent.get()メソッドアクセスBaiduのニュース * / superagent.get(「http://news.baidu.com/').end((err、RES)=> { IF (ERR){ // アクセスが失敗するか、エラーがこの行を発生した場合ここで はconsole.log( `熱いニュースをフェッチするために失敗しました- $ {}` ERR)を } 他{ // 成功した訪問、ページ要求http://news.baidu.com/は、データがRESに含まれます返さ // クロール熱いニュースデータ hotNews =getHotNews(RES) } }); / * * * index.js * [説明] -ホットニュースのクロールページ * / // 導入に必要なサードパーティ製のパッケージ のconst =チェリオ必要( 'チェリオ' ); のlet getHotNewsの =( RES)=は> { HotNewsましょう = []; // アクセスの成功を、要求http://news.baidu.com/ページデータがres.textに含まれて返されました。 / * 使用チェリオモジュールcherrio.load()メソッド、関数のHTMLDocumentのパラメータとして ページ要素を取得するには、後に同様のjQueryの$(selectior)の方法で使用される * / のlet $ = cheerio.load(res.text) ; // ターゲットデータ要素、データ収集ページを見つける $( '#ペインニュース-UL李aをDIV')、各((IDX、ELE)=>を。{ //cherrioの$(「セレクタ」)はそれぞれ( ) すべてのマッチしたDOM要素を反復処理するために使用されます。 // パラメータIDXは現在、横断要素のインデックス、ELE便利なDOM要素が現在のです LETニュース= { タイトル:$(ELE) .text()、 // ニュースの見出しを取得 HREF:$(ELE).ATTR( 'のhref') // ニュースページがリンクしてもらう }; hotNews.push(ニュース) // 保存し、最終的な結果の配列 }); を返すHotNewsを } ;
6、現在のファイルフォルダ内のコマンドラインを開き、コマンドラインを入力します。
ノードindex.js
7、ブラウザでのアクセスはlocalhost:3000
8、ページのクロールの表示データ