使用sync request和cheerio寫爬蟲

2021-07-09 14:01:23 字數 1082 閱讀 9046

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 我在...