Node-SplderApi2 第二版javascript
基於Node 的網絡爬蟲 API接口 包括前端開發日報、kugou音樂、前端top框架排行、妹紙福利、搞笑視頻、段子笑話、各種視頻新聞資訊 熱點詳情接口數據前端
源代碼目錄結構
地址vue
GitHub :https://github.com/ecitlm/Nod...java
查看文檔node
須要安裝node expressreact
$ git clone https://github.com/ecitlm/Node-SpliderApi.git $ npm install ### 運行 $ node app.js
服務器啓動默認端口爲3001 、啓動以後就能夠開啓了接口服務了.webpack
接口文件git
├─api │ ├─it │ │ daily_info.js │ │ daily_list.js │ │ web_frame.js │ │ │ ├─joke │ │ joke_img.js │ │ joke_list.js │ │ joke_photo.js │ │ │ ├─music │ │ new_songs.js │ │ plist.js │ │ plist_songs.js │ │ rank_list.js │ │ rank_list_info.js │ │ search.js │ │ singer_classify.js │ │ singer_info.js │ │ singer_list.js │ │ song_info.js │ │ song_lrc.js │ │ │ ├─news │ │ news_detail.js │ │ news_list.js │ │ video_list.js │ │ │ └─photo │ huaban.js │ photo_list.js │ photo_type.js │ photo_view.js │ └─web daily_info.js daily_list.js index.js photo.js
網絡請求封裝 httpServer.js
github
get
方法web
/** * http get網絡請求封裝 * @param {string} 域名 * @param {obj} 參數 * @param {string} 接口路徑 * @param {bool} true false 是否爲https * @returns */ function httpGet(host, data, path, status) { var options = { host: host, port: 80, path: path + querystring.stringify(data), method: 'GET', encoding: null, headers: { 'Content-Type': 'application/json', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36', }, }; //判斷是否爲https請求 if (status) { http = require('https'); options.port = 443; } return new Promise(function(resolve, reject) { let body = ''; var get_req = http.request(options, function(response) { //response.setEncoding('utf8'); response.on('data', function(chunk) { body += chunk; }); response.on('end', () => { resolve(body); }); response.on('error', err => { reject(err); }); }); get_req.end(); }); }
POST
方法
/** * http POST 請求 * @param {string} 域名 * @param {obj} 參數 * @param {string} 接口路徑 * @param {bool} true false 是否爲https * @returns */ function httpPost(host, data, path, status) { var data = querystring.stringify(data); var options = { host: host, port: '80', path: path, method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36', 'Content-Length': Buffer.byteLength(data), //返回字符串實際佔據的字節長度 }, }; //判斷是否爲https請求 if (status) { http = require('https'); options.port = 443; } return new Promise(function(resolve, reject) { let body = ''; var post_req = http.request(options, function(response) { //console.log(response.statusCode); response.on('data', function(chunk) { body += chunk; }); response.on('end', () => { resolve(body); }); response.on('error', err => { reject(err); }); }); post_req.write(data); post_req.end(); }); }
前端開發日報列表、單日日報、前端框架top100
必選參數:
無
接口地址:api/daily_list
調用例子:http://localhost:3001/api/daily_list
接口返回數據
{ "code": 200, "data": [ { "title": "20171206 前端開發日報", "id": 20171206, "description": "基於 Vue-cli 的 webpack 通用封裝, 更易簡單的開始你的項目;Webapck+Vue多頁面商城模板;前端每週清單第 42 期:V8 的執行流與優化, Pinterest 的 PWA 實踐, Rust 與 WebAssembl ...", "date": "2017-12-06" }, { "title": "20171127 前端開發日報", "id": 20171127, "description": "一次 H5 「保存頁面爲圖片」 的踩坑之旅;純 CSS 實現波浪效果;前端本地文件操做與上傳;函數聲明、函數表達式、匿名函數、當即執行函數詳解;Chromium 新的彈窗機制以及 HTML 的 dialog 元素;RxJS 5 中文文檔;C ...", "date": "2017-11-27" } ], "msg": "" }
必選參數:
日期 id
接口地址:api/daily_info/:id
調用例子:http://localhost:3001/api/daily_info/20171206
接口返回數據
{ "code": 200, "data": { "title": "20171206 前端開發日報", "description": "基於 Vue-cli 的 webpack 通用封裝, 更易簡單的開始你的項目;Webapck+Vue多頁面商城模板;前端每週清單第 42 期:V8 的執行流與優化, Pinterest 的 PWA 實踐, Rust 與 WebAssembly 應用;如何利用Git中的tag管理項目版本號;vue-loader 源碼解析系列之 selector;[javascript]搞清this的指向只需問兩個問題;分享一個比較全的webpack配置,分爲基礎和適配antdesign的配置;使用JavaScript 寫web路由", "links": [ { "title": "基於 vue-cli 的 webpack 通用封裝, 更易簡單的開始你的項目", "description": "基於 vue-cli 的 webpack 通用封裝, 更易簡單的開始你的項目 vayne 薇恩 基於 vue-cli 的 webpack 通用封裝, 更易簡單的開始你的項目 使用 npm i vayne -g yarn add vayne -D --registry", "url": "https://juejin.im/entry/5a20e7056fb9a045284647ce" }, { "title": "簡單案例學習Vue.js單元測試", "description": "簡單案例學習Vue.js單元測試 使用 vue-cli 能夠直接生成一個包含 unit & e2e 測試的開發環境。這裏咱們主要針對 unit 文件進行 單元測試 。 (本發首發於個人筆記網站) 命令行效果預覽 test/unit 文件結構及分析 ├── coverage ├── jest.conf.js ├── setup.js └── specs ├── api-test.spec.js ├── click-test.spec.js ...", "url": "http://www.tuicool.com/articles/zYnE7vZ" }, { "title": "Web開發這十年", "description": "Web開發這十年 做者 | Ivan Zarea 譯者 | 薛命燈 Web 開發這十年都發生了怎樣的變化?來看看 Ivan Zarea 總結的 Web 開發這十年。如下內容摘譯自做者的博客,查看英文原文:", "url": "https://juejin.im/entry/5a2521f46fb9a0451463e11c" } ] }, "msg": "" }
返回前端top 100框架數據
必選參數:
無
接口地址:api/web_frame
調用例子:http://localhost:3001/api/web_frame
接口返回數據
{ "code": 200, "data": [ { "index": "1", "thumb": "https://awesomes.oss-cn-beijing.aliyuncs.com/repo/151009222011-95-1.jpg?x-oss-process=style/subject_repo", "title": "bootstrap", "description": "目前最流行的 HTML, CSS 和 JavaScript 框架,用於開發響應式,移動端先行的 web 項目", "url": "https://github.com/twbs/bootstrap" }, { "index": "2", "thumb": "https://awesomes.oss-cn-beijing.aliyuncs.com/repo/151011005628-65-1.jpg?x-oss-process=style/subject_repo", "title": "react", "description": "Facebook 推出的一款聲明式的,高效的,靈活的用於建立用戶接口的JavaScript 庫", "url": "https://github.com/facebook/react" } ] }
笑話段子、搞笑圖片
段子列表、每頁返回20條數據
必選參數:
'page' 頁數
接口地址:/api/joke_list/:page
調用例子:http://localhost:3001/api/joke_list/1
接口返回數據
{ "code": 200, "data": [ { "title": "作了個好夢,嚇醒了。~~~~割~~~~;作夢剛開始好像是抱着老婆的咪咪喊別人的名字,後來想 ", "source": "糗事百科", "digest": "作了個好夢,嚇醒了。~~~~割~~~~;作夢剛開始好像是抱着老婆的咪咪喊別人的名字,後來想一想不對啊,應該抱着別人喊老婆纔對,這樣老婆就會高興了,忽然就驚醒了,個人老婆在哪呢。\u0001[流鼻血]\u0001[流鼻血]\u0001[流鼻血]" }, { "title": "奶奶去世四十天了,生前最大的願望就是想看到我女友,個人高中同窗在那個醫院作護士,是她幫了我這個忙,冒充了十分鐘,她應該不玩段子的,仍是衷心祝全部醫院的天使一輩子平安!", "source": "內涵段子", "digest": "奶奶去世四十天了,生前最大的願望就是想看到我女友,個人高中同窗在那個醫院作護士,是她幫了我這個忙,冒充了十分鐘,她應該不玩段子的,仍是衷心祝全部醫院的天使一輩子平安!" } ], "msg": "" }
天天返回20條最新數據
必選參數:
'無'
接口地址:/api/joke_img/
調用例子:http://localhost:3001/api/joke_img
接口返回數據
{ "code": 200, "data": [ { "title": "泡妞最帥的姿式,hold啊", "thumburl": "http://ww3.sinaimg.cn/large/bd759d6djw1ezaly9mqf3j20c80exdgk.jpg", "sourceurl": "http://down.laifudao.com/images/tupian/20151210155356.jpg" }, { "title": "麥當勞不如漢堡王的一個鐵證!", "thumburl": "http://ww4.sinaimg.cn/large/94c4bcf2jw1dzwn3wx3tmj.jpg", "sourceurl": "http://down.laifudao.com/images/tupian/201212172720.jpg" }, { "title": "幸福的拖拉機手", "thumburl": "http://ww1.sinaimg.cn/large/bcc86cc5jw1dzq54qxdd9j.jpg", "sourceurl": "http://down.laifudao.com/images/tupian/aa70448297.jpg" } ], "msg": "" }
每頁返回10條最新數據
必選參數:
'無'
接口地址:/api/joke_photo/:page
調用例子:http://localhost:3001/api/joke_photo/1
接口返回數據
{ "code": 200, "data": [ { "title": "牛逼了個人公交哥", "img": "http://img.xiaoliaoba.cn/public/uploads/images/20171206/1512529717570948.png" }, { "title": "好污的鼠標===", "img": "http://img.xiaoliaoba.cn/public/uploads/images/20171128/1511844635661496.png" }, { "title": "撩妹,都是套路,防不勝防", "img": "http://img.xiaoliaoba.cn/public/uploads/images/20171128/1511844447422391.png" }, { "title": "能不能專心點?", "img": "http://img.xiaoliaoba.cn/public/uploads/images/20171128/1511844362909028.png" }, { "title": "寶貝,我老公不在家", "img": "http://img.xiaoliaoba.cn/public/uploads/images/20171124/1511508449453478.png" } ], "msg": "" }
新聞列表、新聞視頻、新聞詳情
新聞列表
必選參數:type
: 新聞類型
0 熱點新聞 1 社會新聞 2 娛樂新聞 3體育新聞 4美文 5科技 6財經 7 時尚
名稱 | 熱點 | 社會 | 娛樂 | 體育 | 美文 | 科技 | 財經 | 時尚 |
type | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
接口地址:/api/news_list/:type
調用例子:http://localhost:3001/api/news_list/1
接口返回數據
{ "media_name": "環球網", "ban_comment": 1, "abstract": "《吉林日報》今天用一個整版介紹了核武器常識及在遭到核攻擊時的防禦方法。這個版的內容傳到互聯網上後,迅速刷屏,引發紛紛議論。目前半島局勢緊張,朝鮮已進行了六次核試驗,被普遍認爲已經擁有了核彈頭。另外朝鮮的導彈技術今年以來快速突破,成功試射了射程可覆蓋美國本土的洲際彈道導彈。", "image_list": [], "datetime": "2017-12-06 21:13", "article_type": 1, "tag": "news_military", "has_m3u8_video": 0, "keywords": "半島,朝鮮半島,朝鮮,吉林,半島局勢", "display_dt": 1512539220, "has_mp4_video": 0, "aggr_type": 1, "cell_type": 0, "article_sub_type": 1, "bury_count": 2, "title": "社評:吉林日報介紹核武常識,意味着什麼", "source_icon_style": 1, "tip": 1, "has_video": false, "share_url": "http://m.toutiao.com/group/6496307172245242381/?iid=0&app=news_article", "source": "環球網", "comment_count": 63, "article_url": "https://m.huanqiu.com/r/MV8wXzExNDI3MjE0XzI4Ml8xNTEyNTM5MjIw", "publish_time": 1512539220, "group_flags": 0, "action_extra": "{\"channel_id\": 3189398996}", "tag_id": "6496307172245242381", "source_url": "/item/6496307172245242381/", "display_url": "http://toutiao.com/group/6496307172245242381/", "is_stick": false, "item_id": "6496307172245242381", "repin_count": 2308, "cell_flag": 11, "source_open_url": "sslocal://profile?uid=5954781019", "level": 0, "digg_count": 1, "behot_time": 1512566010, "hot": 1, "cursor": 1512566010999, "url": "https://m.huanqiu.com/r/MV8wXzExNDI3MjE0XzI4Ml8xNTEyNTM5MjIw", "like_count": 1, "user_repin": 0, "has_image": false, "video_style": 0, "media_info": { "avatar_url": "http://p1.pstatp.com/large/4d00054b126ceaf920", "media_id": 5954781019, "name": "環球網", "user_verified": false }, "group_id": "6496307172245242381" }
每頁返回10條最新數據
必選參數:
item_id
新聞列表的 item id
接口地址:/api/news_detail/:item_id
調用例子:http://localhost:3001/api/news_detail/6496307172245242381
接口返回數據
{ "detail_source": "環球網", "media_user": { "no_display_pgc_icon": false, "avatar_url": "http://p9.pstatp.com/thumb/4d00054b126ceaf920", "id": "5954781019", "screen_name": "環球網" }, "publish_time": 1512568020, "title": "社評:吉林日報介紹核武常識,意味着什麼", "url": "https://m.huanqiu.com/r/MV8wXzExNDI3MjE0XzI4Ml8xNTEyNTM5MjIw", "is_original": false, "is_pgc_article": false, "content": "<p>《吉林日報》今天用一個整版介紹了核武器常識及在遭到核攻擊時的防禦方法。這個版的內容傳到互聯網上後,迅速刷屏,引發紛紛議論。</p>", "source": "環球網", "comment_count": 63, "creator_uid": 5954781019 }
必選參數:type
: 類型
0搞笑視頻 1美女視頻 2體育視頻 3 新聞現場 4漲姿式 5獵奇 6 黑科技 默認搞笑視頻page
: 分頁 如:0/10/20/30
type | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
名稱 | 搞笑 | 美女 | 體育 | 新聞現場 | 漲姿式 | 獵奇 | 黑科技 |
接口地址:api/video_list/:type/:page
調用例子:http://localhost:3001/api/video_list/1/0
返回數據(因爲長度就展現2條看)以下JSON:
音樂新歌榜單、音樂歌單、排行榜、音樂詳情、歌詞、搜索、歌手信息、
詳細可看源代碼api/music
必選參數:
無
接口地址:api/new_songs
調用例子:http://localhost:3001/api/new_songs
接口返回數據