摘要:知乎日?qǐng)?bào)代理首先感謝提供的分析使用詳情請(qǐng)參考他提供的參數(shù)和地址代理轉(zhuǎn)發(fā)的使用為前綴進(jìn)入代理路由啟動(dòng)界面圖像獲取后為圖像分辨率,接受任意的格式,為任意非負(fù)整數(shù),返回值均相同返回值示例最新消息等具體參考提供的分析中的使用方式以及參數(shù)含義。
項(xiàng)目說明
這是一個(gè)基于express的node后端API服務(wù),當(dāng)時(shí)只是想抓取字幕組網(wǎng)站的下載資源,以備以后通過nas的方式去自動(dòng)下載關(guān)注的美劇。不過后來慢慢擴(kuò)展了幾個(gè)API,以備以后寫練手的webapp時(shí),遇到?jīng)]有數(shù)據(jù)調(diào)用的尷尬┑( ̄Д  ̄)┍
項(xiàng)目地址:nodejs練手爬蟲+API測(cè)試字幕組網(wǎng)站資源抓取原理:
首先發(fā)送登錄請(qǐng)求到目標(biāo)登錄地址,登錄成功后會(huì)獲取到cookies
攜帶cookies訪問收藏頁面,通過cheerio抓取相應(yīng)的關(guān)注信息
使用 es6 的 async 函數(shù) 并發(fā)執(zhí)行抓取每一個(gè)關(guān)注的信息(如果當(dāng)關(guān)注條目很多的時(shí)候,并行效率可能會(huì)比較低,之后考慮限制并行數(shù)量)
豆瓣電影API
只是做了一個(gè)簡(jiǎn)單的轉(zhuǎn)發(fā),并對(duì)返回的數(shù)據(jù)做了一個(gè)過濾,可以自定義過濾掉低于某個(gè)分?jǐn)?shù)的電影
系統(tǒng)狀態(tài)API
引入了node的 os 模塊,獲取一些基礎(chǔ)的系統(tǒng)狀態(tài)數(shù)據(jù)
cnode社區(qū)和知乎日?qǐng)?bào)API
均為轉(zhuǎn)發(fā)請(qǐng)求,目的是為了解決跨域訪問的問題
cnode社區(qū)API本身支持跨域,本例只做測(cè)試用
特性:使用了es6 的 async 函數(shù) 處理異步數(shù)據(jù)
集成node 8.0.0版本的docker 托管在云服務(wù)器方便訪問
使用cors模塊解決跨域問題,可以通過白名單的方式去配置允許跨域的ip。
在線訪問地址使用docker容器構(gòu)建,托管在了daocloud.io的免費(fèi)應(yīng)用中
API地址:http://mrsix-api.daoapp.io
訪問示例:get http://mrsix-api.daoapp.io/api/v1/zmz/hot24 獲取24小時(shí)下載熱門數(shù)據(jù)
遇到的問題關(guān)于請(qǐng)求庫(kù) axios 在以form-data的形式發(fā)送post請(qǐng)求登錄的的時(shí)候,遇到了問題,就是登錄不上“字幕組”網(wǎng)站。(類似的問題 在cnode的兄弟也遇到了,不過我就沒人家厲害了關(guān)于axios在node中的post使用)后來直接使用了 superagent感覺用起來很舒暢
以后增加的特性
[ ] 添加mongo數(shù)據(jù)庫(kù)支持,通過對(duì)比檢測(cè)當(dāng)前更新了哪一集,并將更新的加入數(shù)據(jù)庫(kù)
[ ] 添加其他資源抓取
[ ] 限制查詢資源時(shí)的并發(fā)數(shù)量
[ ] 提供前端頁面展示
[ ] 集成到docker中,通過Nginx處理端口轉(zhuǎn)發(fā)
API說明返回值示例
{ "success": true, "dsc": "熱門列表", "data": [ { "title": "雙峰", "type": "美劇", "url": "http://www.zimuzu.tv/resource/26514" }, { "title": "絕命律師", "type": "美劇", "url": "http://www.zimuzu.tv/resource/33190" }, ... ] }POST /api/v1/zmz/fav 獲取關(guān)注列表
接收 post 參數(shù):
account String 字幕組賬戶用戶名
password String 字幕組賬戶用戶名
返回值示例
{ "success": true, "dsc": "關(guān)注list", "data": [ { "title": "【美劇】《絕命律師》", "url": "http://www.zimuzu.tv/resource/33190", "id": "33190" }, ... ] }POST /api/v1/zmz/fav/detail 獲取關(guān)注列表下載資源
接收 post 參數(shù):
account String 字幕組賬戶用戶名
password String 字幕組賬戶用戶名
返回值示例
{ "success": true, "dsc": "關(guān)注資源下載列表", "data": [ { "success": true "dsc": "美劇《絕命律師》第3季連載中資源下載列表", "data":[ { "source_type": "HR-HDTV", "source_urls": [ "season": "1", "episode": "1", "title": "絕命律師.Better.Call.Saul.S01E01.中英字幕.BD-HR.AAC.1024x576.x264.mp4", "load_arr": [ ... ] ] } ] }, ... ] }豆瓣電影-正在上映API GET /api/v1/movie/cur 獲取正在上映的電影
接收 get 參數(shù):
star 所需過濾的分?jǐn)?shù)一下的電影(總分10分,默認(rèn)為8分)
返回值示例
同豆瓣API
返回值示例
{ "success": true, "dsc": "系統(tǒng)狀態(tài)", "data": { "arch": "x64", "cpu": [ ... ], "totalmem": 8589934592, # 內(nèi)存總量 "freemem": 741810176, # 剩余內(nèi)存 "free_rate": "8.64", # 內(nèi)存剩余百分百 "uptime": 47792 # 正常運(yùn)行時(shí)間(單位s) } }cnode社區(qū)API代理
代理cnodejs社區(qū)的API轉(zhuǎn)發(fā),只是用來測(cè)試用的,因?yàn)閏node的API本身是支持跨域的。
使用詳情請(qǐng)參考他提供的API參數(shù)和地址代理轉(zhuǎn)發(fā)的API使用 /cnode/...為前綴進(jìn)入代理路由
接收 get 參數(shù)
page Number 頁數(shù)
tab String 主題分類。目前有 ask share job good dev
limit Number 每一頁的主題數(shù)量
mdrender String 當(dāng)為 false 時(shí),不渲染。默認(rèn)為 true,渲染出現(xiàn)的所有 markdown 格式文本。
知乎日?qǐng)?bào)API代理首先感謝izzyleung提供的API分析
使用詳情請(qǐng)參考他提供的API參數(shù)和地址代理轉(zhuǎn)發(fā)的API使用 /ribao/...為前綴進(jìn)入代理路由
prefetch-launch-images 后為圖像分辨率,接受任意的 number*number 格式, number 為任意非負(fù)整數(shù),返回值均相同
返回值示例
{ "creatives": [ { "url": "https://pic1.zhimg.com/v2-cf690e166adee2d77ebb3450d4ddc424.jpg", "start_time": 1496932908, "impression_tracks": [ "https://sugar.zhihu.com/track?ai=4704&ut=&tu=&vs=2&ts=1496932908&si=ec82667293bd47cc88261ab0653cf64f&lu=0&hn=ad-engine.ad-engine.05d757af&at=impression&pf=PC&az=11&sg=4d27dde3d4db55a399ed6ecfc333eedb" ], "type": 0, "id": "4704" } ] }GET /ribao/api/4/news/latest 最新消息
等……
具體參考izzyleung提供的API分析中的使用方式以及參數(shù)含義。
ps: 關(guān)于圖片防盜鏈的問題 可添加meta 標(biāo)簽
使用dockerHub的自動(dòng)構(gòu)建功能關(guān)聯(lián)GitHub項(xiàng)目,每當(dāng)有新代碼push之后觸發(fā)自動(dòng)構(gòu)建命令
daocloud.io 控制臺(tái)使用手動(dòng)更新發(fā)布的方式(不支持dockerhub的自動(dòng)發(fā)布)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/26942.html
摘要:也就是說,我的篇文章的請(qǐng)求對(duì)應(yīng)個(gè)實(shí)例,這些實(shí)例都請(qǐng)求完畢后,執(zhí)行以下邏輯他的目的在于對(duì)每一個(gè)返回值這個(gè)返回值為單篇文章的內(nèi)容,進(jìn)行方法處理。 英國(guó)人Robert Pitt曾在Github上公布了他的爬蟲腳本,導(dǎo)致任何人都可以容易地取得Google Plus的大量公開用戶的ID信息。至今大概有2億2千5百萬用戶ID遭曝光。 亮點(diǎn)在于,這是個(gè)nodejs腳本,非常短,包括注釋只有71行。 ...
摘要:編寫異步小爬蟲在通過的課程初步了解的各大模塊之后,不禁感慨于的強(qiáng)大,讓我們這些前端小白也可以進(jìn)行進(jìn)階的功能實(shí)現(xiàn),同時(shí)發(fā)現(xiàn)自己也已經(jīng)可以通過實(shí)現(xiàn)一些比較日常的小功能。 nodejs編寫異步小爬蟲 在通過learnyounode的課程初步了解nodejs的各大模塊之后,不禁感慨于nodejs的強(qiáng)大,讓我們這些前端小白也可以進(jìn)行進(jìn)階的功能實(shí)現(xiàn),同時(shí)發(fā)現(xiàn)自己也已經(jīng)可以通過nodejs實(shí)現(xiàn)一些...
摘要:沒有耐心閱讀的同學(xué),可以直接前往學(xué)習(xí)全棧最后一公里。我下面會(huì)羅列一些,我自己錄制過的一些項(xiàng)目,或者其他的我覺得可以按照這個(gè)路線繼續(xù)深入學(xué)習(xí)的項(xiàng)目資源。 showImg(https://segmentfault.com/img/bVMlke?w=833&h=410); 本文技術(shù)軟文,閱讀需謹(jǐn)慎,長(zhǎng)約 7000 字,通讀需 5 分鐘 大家好,我是 Scott,本文通過提供給大家學(xué)習(xí)的方法,...
摘要:用途廣泛,可以用于數(shù)據(jù)挖掘監(jiān)測(cè)和自動(dòng)化測(cè)試。運(yùn)行下,發(fā)現(xiàn)數(shù)據(jù)全部存到了數(shù)據(jù)庫(kù)中。提供了一些接口來查看項(xiàng)目爬蟲情況,以及執(zhí)行或者停止執(zhí)行爬蟲。完成小程序所需要的所有接口的開發(fā),以及使用定時(shí)任務(wù)執(zhí)行爬蟲腳本。 過完年回來,業(yè)余時(shí)間一直在獨(dú)立開發(fā)一個(gè)小程序。主要數(shù)據(jù)是8000+個(gè)視頻和10000+篇文章,并且數(shù)據(jù)會(huì)每天自動(dòng)更新。 我會(huì)整理下整個(gè)開發(fā)過程中遇到的問題和一些細(xì)節(jié)問題,因?yàn)閮?nèi)容會(huì)比...
閱讀 3781·2021-11-23 09:51
閱讀 4417·2021-11-15 11:37
閱讀 3530·2021-09-02 15:21
閱讀 2754·2021-09-01 10:31
閱讀 886·2021-08-31 14:19
閱讀 861·2021-08-11 11:20
閱讀 3315·2021-07-30 15:30
閱讀 1696·2019-08-30 15:54