node 訪問第三方API


1.安裝request模塊
npm install request --save

基本形式

//request(options,callback) request({ url: url,//請求路徑 method: "POST",//請求方式,默認為get headers: {//設置請求頭 "content-type": "application/json", }, body: JSON.stringify(requestData)//post參數字符串 }, function(error, response, body) { if (!error && response.statusCode == 200) { } }); 

1.1簡單示例

var request = require('request'); request('https://www.baidu.com', function (error, response, body) { console.log(body)//打印百度首頁html內容 }) or request({url:'https://www.baidu.com'}, function (error, response, body) { console.log(body)//打印百度首頁html內容 }) 

2.結合文件流

進行網絡爬蟲的時候,有時我們需要保存圖片、js、css等文件,request支持文件流

request('https://www.baidu.com/img/bd_logo1.png').pipe(fs.createWriteStream('a.png')) //抓取百度logo並保存到本地 

也可以將文件傳給PUT或POST請求,用於文件上傳。未提供header的情況下,會檢測文件后綴名,在PUT請求中設置相應的content-type。

fs.createReadStream('pic.jpg').pipe(request.put('http://veb.com/upload')) //讀取流pipe上傳 

3.表單上傳
request.post('http://service.com/upload', {form:{key:'value'}})

or

request.post('http://service.com/upload').form({key:'value'})

formData形式

var r = request.post('http://veblen.com/upload') var form = r.form() form.append('my_field', 'my_value') form.append('my_buffer', new Buffer([1, 2, 3])) form.append('my_file', fs.createReadStream(path.join(__dirname, 'doodle.png')) form.append('remote_file', request('https://www.baidu.com/img/bd_logo1.png')) 

附上nodejs重定向(跟request沒關系)

res.writeHead(302, { 'Location': 'https://www.baidu.com' //add other headers here... }); res.end(); 

結合cheerio爬蟲很酷

//npm install cheerio var cheerio = require('cheerio'); var $ = cheerio.load('<ul id="fruits">...</ul>');//jquery 一樣的操作





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM