摘要:后來(lái)在爬取不到讓我一度懷疑人生的時(shí)候巧合下,發(fā)現(xiàn)磁力鏈接有小寫字母,有長(zhǎng)度的,有長(zhǎng)度的。。
原文博客: 羞羞的node爬蟲(chóng)
前言學(xué)了一陣子node,除了用 express 寫東西,就沒(méi)怎么做過(guò)東西
突然就想寫個(gè) 爬蟲(chóng) 來(lái)玩一玩,而且還是爬一些羞羞的東西
SuperAgent 是個(gè) http 方面的庫(kù),可以發(fā)起 get 或 post 請(qǐng)求。
cheerio 大家可以理解成一個(gè) Node.js 版的 jquery,用來(lái)從網(wǎng)頁(yè)中以 css selector 取數(shù)據(jù),使用方式跟 jquery 一樣一樣的
fs 用于讀寫文件的一個(gè)依賴包
superagent-logger 用來(lái)打印http請(qǐng)求信息
首先,我們要爬取得網(wǎng)址是 : http://www.hacg.wiki/wp/anime...
其次,我們要爬取得目標(biāo): 以以下格式保存在 txt 中
再其次,分析我們要爬取的內(nèi)容分布 : 打開(kāi)控制臺(tái)
title, id, tags 如下
爬取地址是: "http://www.hacg.wiki/wp/anime.html/page/" + i
time, seed 如下
爬取地址是: "http://www.hacg.wiki/wp/" + id + ".html"
再再其次,我們可以從上面看出,要爬 time 和 seed 前提是把前邊的 id 爬取到,
因此要先爬取 id ,再利用 id 拼湊 seed 所在的 url
最后, 就可以來(lái)愉快地爬取了
知識(shí)點(diǎn)還是有復(fù)習(xí)到一些知識(shí)
具體superagent,cheerio看上面我提供的 api模塊文檔鏈接
當(dāng)我第一次按正常同步思維用 superagent 先爬取 id 所在 url,
再調(diào)用下面使用 superagent 的函數(shù)獲取 seed時(shí),
我發(fā)現(xiàn)獲取的 seed 一直是空的。
后來(lái)才意識(shí)到這是異步函數(shù),不會(huì)按順序進(jìn)行。
因此我使用了 ES6 的 promise 控制先執(zhí)行 爬取 id
爬取完 id 再爬取 seed
如果你有逛過(guò)該網(wǎng)站,你會(huì)發(fā)現(xiàn)他的 seed 是放得毫無(wú)規(guī)律的,
并不是存放在一個(gè)固定的 x標(biāo)簽 中,
因此我的做法是 把存放 seed 的整一個(gè) $(".entry-content") 獲取到,
再利用正則表達(dá)式整塊文本進(jìn)行匹配獲取
神坑啊神坑,小問(wèn)題費(fèi)了我好長(zhǎng)時(shí)間
磁力鏈接的大坑一開(kāi)始我以為 磁力鏈接 這玩意長(zhǎng)度為 40 ,都是 大寫字母 + 數(shù)字 的組合。
后來(lái)在爬取不到 seed ,讓我一度懷疑人生的時(shí)候
巧合下,發(fā)現(xiàn) 磁力鏈接 有 小寫字母,有 32長(zhǎng)度 的,有 42長(zhǎng)度 的。。
我一直以為是 重定向 問(wèn)題, 哎,花了好幾個(gè)鐘在這上面糾結(jié)
不過(guò)也讓我小小得重新了解了下 http
結(jié)果爬取行數(shù)有: 2700行、
爬取seed數(shù): 450
github: llss-crawler
具體注釋都在代碼里,有需要的小伙伴可以去 github 下下來(lái),跑一下
感受有趣的爬蟲(chóng),希望不吝惜地給個(gè)star?
第一次寫爬蟲(chóng),感覺(jué)很有趣,一個(gè)很自動(dòng)化,一種互聯(lián)網(wǎng)啥都 get 得到的感覺(jué)
?(純潔)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/50823.html
摘要:后來(lái)在爬取不到讓我一度懷疑人生的時(shí)候巧合下,發(fā)現(xiàn)磁力鏈接有小寫字母,有長(zhǎng)度的,有長(zhǎng)度的。。 原文博客: 羞羞的node爬蟲(chóng) 前言 學(xué)了一陣子node,除了用 express 寫東西,就沒(méi)怎么做過(guò)東西突然就想寫個(gè) 爬蟲(chóng) 來(lái)玩一玩,而且還是爬一些羞羞的東西 使用模塊 SuperAgent 是個(gè) http 方面的庫(kù),可以發(fā)起 get 或 post 請(qǐng)求。 cheerio 大家可以理解成一個(gè) ...
摘要:去年年初寫了一個(gè)擴(kuò)展十閱后,一直想寫個(gè)十閱出來(lái),奈何懶癌后期,一直拖到最近才完成原型。這次心血來(lái)潮閑的蛋疼,想起去年年初就有所耳聞的,于是就打算用它來(lái)耍耍。使用鏈接庫(kù)在設(shè)備上運(yùn)行用來(lái)斷點(diǎn)調(diào)試地址學(xué)習(xí)資源圖圖圖 去年年初寫了一個(gè) chrome 擴(kuò)展「十閱」后,一直想寫個(gè)十閱 app 出來(lái),奈何懶癌后期,一直拖到最近才完成原型。 其實(shí)很早之前就已經(jīng)寫過(guò)一個(gè) hybrid app 了,使用了...
摘要:前段時(shí)間又發(fā)布了新版本我接觸的時(shí)候已經(jīng)版本了支持的版本必須打包速度大小比較以及粗淺的試了一下下圖所示,黃色為版本綠色為我寫的配置,跟基本相似,具體不同下面會(huì)介紹藍(lán)色是自帶的模式紅色為具體大小速度大家可以比較一下,還是很給力的關(guān)于配置方面,應(yīng) 前段時(shí)間webpack又發(fā)布了新版本webpack4我接觸的時(shí)候已經(jīng)4.1版本了node支持的版本必須node: >=6.11.5 webpack...
閱讀 2604·2021-11-02 14:39
閱讀 4321·2021-10-11 10:58
閱讀 1446·2021-09-06 15:12
閱讀 1837·2021-09-01 10:49
閱讀 1326·2019-08-29 18:31
閱讀 1882·2019-08-29 16:10
閱讀 3331·2019-08-28 18:21
閱讀 867·2019-08-26 10:42