Nodejs筆記用具
11252 ワード
何日間のnodejsを見て、確かに使いやすいです.全部練習したつもりで、爬虫類の道具を書きました.
爬虫類の考えはすべて一致しています.まずページのデータを取って、ページを分析して、必要なデータを得て、最後にこれらのデータを得て、ハードディスクに書き込んで、それともホームページに表示して、自分で見ながらやります.
最も難しいのは分析ページです.他のツールを使わないと正規表現で分析するしかないです.ここではcherioというモジュールを採用しています.これはとても使いやすいです.抵抗心がないようにしてください.cherioはネット上で多く紹介されています.divによって、class、hrefなどのタブから中のデータを取得できます.
今回は私のブログのトップページです.http://www.cnblogs.com/juepei/)の文章のタイトルは、駅長が怒らずに練習してほしいですか?
まず、どのようにしてこのページのデータを得るかを話します.
コードは以下の通りです.簡単な比較です.
データの解析を開始します.
トップページの記事の部分コードを確認します.
私が欲しいものはここにあります.
爬虫類の考えはすべて一致しています.まずページのデータを取って、ページを分析して、必要なデータを得て、最後にこれらのデータを得て、ハードディスクに書き込んで、それともホームページに表示して、自分で見ながらやります.
最も難しいのは分析ページです.他のツールを使わないと正規表現で分析するしかないです.ここでは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 " " , ...<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>
それはコードは以下の通りです
その後、入手したデータを自由に処理できます.ここでは地元の文書ドキュメントに保存しました.中間は配列でデータを保存しました.
すべてのコードは以下の通りです.
これで大成功となる.ps:私も何日間勉強しました.最初は悩みました.いい資料が見つけられなくて、歩きにくいと思います.みんながアプリをたくさん見てほしいです.これが正しい道です.
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:私も何日間勉強しました.最初は悩みました.いい資料が見つけられなくて、歩きにくいと思います.みんながアプリをたくさん見てほしいです.これが正しい道です.