国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

新手的node爬蟲初體驗(yàn)

wemallshop / 3330人閱讀

摘要:后來在爬取不到讓我一度懷疑人生的時候巧合下,發(fā)現(xiàn)磁力鏈接有小寫字母,有長度的,有長度的。。

原文博客: 羞羞的node爬蟲

前言

學(xué)了一陣子node,除了用 express 寫東西,就沒怎么做過東西
突然就想寫個 爬蟲 來玩一玩,而且還是爬一些羞羞的東西

使用模塊

SuperAgent 是個 http 方面的庫,可以發(fā)起 get 或 post 請求。
cheerio 大家可以理解成一個 Node.js 版的 jquery,用來從網(wǎng)頁中以 css selector 取數(shù)據(jù),使用方式跟 jquery 一樣一樣的
fs 用于讀寫文件的一個依賴包
superagent-logger 用來打印http請求信息

流程

首先,我們要爬取得網(wǎng)址是 : http://www.hacg.wiki/wp/anime...
其次,我們要爬取得目標(biāo): 以以下格式保存在 txt

再其次,分析我們要爬取的內(nè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

最后, 就可以來愉快地爬取了

知識點(diǎn)

還是有復(fù)習(xí)到一些知識
具體superagent,cheerio看上面我提供的 api模塊文檔鏈接

利用promise管理異步函數(shù)

當(dāng)我第一次按正常同步思維用 superagent 先爬取 id 所在 url,
再調(diào)用下面使用 superagent 的函數(shù)獲取 seed時,
我發(fā)現(xiàn)獲取的 seed 一直是空的。
后來才意識到這是異步函數(shù),不會按順序進(jìn)行。
因此我使用了 ES6promise 控制先執(zhí)行 爬取 id
爬取完 id 再爬取 seed

用正則表達(dá)式獲取seed

如果你有逛過該網(wǎng)站,你會發(fā)現(xiàn)他的 seed 是放得毫無規(guī)律的,
并不是存放在一個固定的 x標(biāo)簽 中,
因此我的做法是 把存放 seed 的整一個 $(".entry-content") 獲取到,
再利用正則表達(dá)式整塊文本進(jìn)行匹配獲取

坑點(diǎn)

神坑啊神坑,小問題費(fèi)了我好長時間

磁力鏈接的大坑

一開始我以為 磁力鏈接 這玩意長度為 40 ,都是 大寫字母 + 數(shù)字 的組合。
后來在爬取不到 seed ,讓我一度懷疑人生的時候
巧合下,發(fā)現(xiàn) 磁力鏈接 有 小寫字母,有 32長度 的,有 42長度 的。。
我一直以為是 重定向 問題, 哎,花了好幾個鐘在這上面糾結(jié)
不過也讓我小小得重新了解了下 http

運(yùn)行效果


結(jié)果爬取行數(shù)有: 2700行、
爬取seed數(shù): 450

代碼地址

github: llss-crawler
具體注釋都在代碼里,有需要的小伙伴可以去 github 下下來,跑一下
感受有趣的爬蟲,希望不吝惜地給個star?

結(jié)語

第一次寫爬蟲,感覺很有趣,一個很自動化,一種互聯(lián)網(wǎng)啥都 get 得到的感覺
?(純潔)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/83231.html

相關(guān)文章

  • 新手node爬蟲體驗(yàn)

    摘要:后來在爬取不到讓我一度懷疑人生的時候巧合下,發(fā)現(xiàn)磁力鏈接有小寫字母,有長度的,有長度的。。 原文博客: 羞羞的node爬蟲 前言 學(xué)了一陣子node,除了用 express 寫東西,就沒怎么做過東西突然就想寫個 爬蟲 來玩一玩,而且還是爬一些羞羞的東西 使用模塊 SuperAgent 是個 http 方面的庫,可以發(fā)起 get 或 post 請求。 cheerio 大家可以理解成一個 ...

    canopus4u 評論0 收藏0
  • react-native 體驗(yàn) - 使用 javascript 來寫 iOS app

    摘要:去年年初寫了一個擴(kuò)展十閱后,一直想寫個十閱出來,奈何懶癌后期,一直拖到最近才完成原型。這次心血來潮閑的蛋疼,想起去年年初就有所耳聞的,于是就打算用它來耍耍。使用鏈接庫在設(shè)備上運(yùn)行用來斷點(diǎn)調(diào)試地址學(xué)習(xí)資源圖圖圖 去年年初寫了一個 chrome 擴(kuò)展「十閱」后,一直想寫個十閱 app 出來,奈何懶癌后期,一直拖到最近才完成原型。 其實(shí)很早之前就已經(jīng)寫過一個 hybrid app 了,使用了...

    余學(xué)文 評論0 收藏0
  • webpack4.0體驗(yàn)、各版本及parcel性能對比

    摘要:前段時間又發(fā)布了新版本我接觸的時候已經(jīng)版本了支持的版本必須打包速度大小比較以及粗淺的試了一下下圖所示,黃色為版本綠色為我寫的配置,跟基本相似,具體不同下面會介紹藍(lán)色是自帶的模式紅色為具體大小速度大家可以比較一下,還是很給力的關(guān)于配置方面,應(yīng) 前段時間webpack又發(fā)布了新版本webpack4我接觸的時候已經(jīng)4.1版本了node支持的版本必須node: >=6.11.5 webpack...

    MarvinZhang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<