node.js自帶的http模組是非同步獲取網頁內容的,不過我們可以到npm上去搜尋同步的http模組。sync-request就是其中一種。
首先,安裝sync-request包:
npm install sync-request
它的使用方法是:
var request = require('sync-request');
var html = request(method, url, options).getbody
().tostring
();
然後我們需要乙個解析html樹的工具。jsdom可以用,但是它實在是太大,我們可以用cheerio,它提供了類似jquery的api,更加便捷。
npm install cheerio
之後:
var cheerio = require('cheerio');
var $ = cheerio.load(html);
下面是抓取菜鳥教程(runoob.com)單部教程的乙個例子:
var cheerio = require('cheerio');
var request = require('sync-request');
var fs = require('fs');
var ofile = fs.opensync('out.html', 'w');
var url = '';
var html = request('get', url).getbody().tostring();
var toc = gettoc(html);
for(var i in toc)
fs.closesync(ofile);
console.log('done..');
function
gettoc
(html)
return res;
}function
getcontent
(html)
c和c 混合使用
我們編寫 經常需要c和c 混合使用,為了使 c 和 c 保持互相相容的過程呼叫介面,需要,為了簡化,從而定義了兩個巨集方面我們使用 1.在 c 裡加上 extern c 作為符號宣告的一部分。2.begin decls 和 end decls 在c語言 中標頭檔案中,充斥著下面的 片段 begin ...
混合使用C和C
legacy 參考最近在看專案 經常看到header file中,開頭 ifdef cplusplus extern c endif cplusplus 中間包裹 includes,typedefs,以及function prototypes。不懂就要問,去查了下,發現這是為了告知編譯器,以c語言的...
proto 在c 和c 的使用。
1 c linux 下馬 編譯hadoop 2.7.3 要求 protobuf 2.5.0,只需要將鏈結改為 tar zxvf protobuf 2.6.1.tar.gz cd protobuf 2.6.1 configure make make check sudo make install 我在...