Nodejs筆記用具

11252 ワード

何日間のnodejsを見て、確かに使いやすいです.全部練習したつもりで、爬虫類の道具を書きました.
爬虫類の考えはすべて一致しています.まずページのデータを取って、ページを分析して、必要なデータを得て、最後にこれらのデータを得て、ハードディスクに書き込んで、それともホームページに表示して、自分で見ながらやります.
最も難しいのは分析ページです.他のツールを使わないと正規表現で分析するしかないです.ここではcherioというモジュールを採用しています.これはとても使いやすいです.抵抗心がないようにしてください.cherioはネット上で多く紹介されています.divによって、class、hrefなどのタブから中のデータを取得できます.
今回は私のブログのトップページです.http://www.cnblogs.com/juepei/)の文章のタイトルは、駅長が怒らずに練習してほしいですか?
まず、どのようにしてこのページのデータを得るかを話します.
コードは以下の通りです.簡単な比較です.
  request(url,function(error,res,body){
                if(!error && res.statusCode == 200){
                     console.log(body);
                }
        });
    
bodyはデータです.
データの解析を開始します.
トップページの記事の部分コードを確認します.
<div class="day">
    <div class="dayTitle">
        <a id="homepage1_HomePageDays_DaysList_ctl00_ImageLink" href="http://www.cnblogs.com/juepei/archive/2015/01/09.html">2015 1 9 </a>                  
    </div>
    
            <div class="postTitle">
                <a id="homepage1_HomePageDays_DaysList_ctl00_DayList_TitleUrl_0" class="postTitle2" href="http://www.cnblogs.com/juepei/p/4212595.html">git    </a>
            </div>
            <div class="postCon"><div class="c_b_p_desc">  : (1)git branch       (2)git branch -a       (3)git checkout branchname      (4)git add yourfile (5)git commit -a -m &quot;  &quot;            ,       ...<a href="http://www.cnblogs.com/juepei/p/4212595.html" class="c_b_p_desc_readmore">    </a></div></div>
            <div class="clear"></div>
            <div class="postDesc">posted @ 2015-01-09 10:06      _   (4)   (0)  <a href ="http://i.cnblogs.com/EditPosts.aspx?postid=4212595" rel="nofollow">  </a></div>
            <div class="clear"></div>
        
</div>

.....
多くの文章ですか?これらのものの循環です.
私が欲しいものはここにあります.
<div class="postTitle">
                <a id="..." class="postTitle2" href="http://www.cnblogs.com/juepei/p/4212595.html">git    </a>
            </div>
それは
コードは以下の通りです
 var $=cheerio.load(body);
$('div').filter(function(i,e){
                                if($(this).attr('class')==='postTitle'){
                                        console.log($(this).text().trim());
                                }
                        });
ここでdivを使って位置を決めると、データが得られます.コードはこんなに簡単です.
その後、入手したデータを自由に処理できます.ここでは地元の文書ドキュメントに保存しました.中間は配列でデータを保存しました.
すべてのコードは以下の通りです.
var fs=require('fs');
var buffer=require('buffer');

var url='http://www.cnblogs.com/juepei/';
var result=new Array();
function getDatas(){
        request(url,function(error,res,body){
                if(!error && res.statusCode == 200){
                        var $=cheerio.load(body);
                        var j=0;
                        $('div').filter(function(i,e){
                                if($(this).attr('class')==='postTitle'){
                                        j++;
                                        //console.log($(this).text().trim());
                                        result.push($(this).text().trim());
                                }
                        });
                        console.log(result.toString());
                        fs.appendFile('/home/wang/data.txt',result.toString(),function(err){
                                if(err){
                                        console.log('file:'+err);
                                }else{
                                        console.log('write ok');
                                }
                        });
                }
                else{
                        console.log(error);
                }
        });
}

getDatas();
このコードを実行してください./home/wangディレクトリの下でdata.txtが生成されます.ウェブページのコードはutf 8です.システム環境もutf 8ですので、文字化けが発生していません.他のシステムなら、コードが違っています.処理してください.
これで大成功となる.ps:私も何日間勉強しました.最初は悩みました.いい資料が見つけられなくて、歩きにくいと思います.みんながアプリをたくさん見てほしいです.これが正しい道です.