0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

爬蟲實踐:批量下載所有排行榜小說

馬哥Linux運(yùn)維 ? 來源:未知 ? 作者:李倩 ? 2018-10-31 16:54 ? 次閱讀

一、目標(biāo)

排行榜的地址:http://www.qu.la/paihangbang/

找到各類排行旁的的每一部小說的名字,和在該網(wǎng)站的鏈接。

二、觀察網(wǎng)頁的結(jié)構(gòu)

很容易就能發(fā)現(xiàn),每一個分類都是包裹在:

之中,

這種條理清晰的網(wǎng)站,大大方便了爬蟲的編寫。

在當(dāng)前頁面找到所有小說的連接,并保存在列表即可。

三、列表去重的小技巧:

就算是不同類別的小說,也是會重復(fù)出現(xiàn)在排行榜的。

這樣無形之間就會浪費(fèi)很多資源,尤其是在面對爬大量網(wǎng)頁的時候。

這里只要一行代碼就能解決:

這里調(diào)用了一個list的構(gòu)造函數(shù)set:這樣就能保證列表里沒有重復(fù)的元素了。

四、代碼實現(xiàn)

模塊化,函數(shù)式編程是一個非常好的習(xí)慣,堅持把每一個獨(dú)立的功能都寫成函數(shù),這樣會使代碼簡單又可復(fù)用。

1.網(wǎng)頁抓取頭:

2.獲取排行榜小說及其鏈接:

爬取每一類型小說排行榜,

按順序?qū)懭胛募?/p>

文件內(nèi)容為 小說名字+小說鏈接

將內(nèi)容保存到列表

并且返回一個裝滿url鏈接的列表

3.獲取單本小說的所有章節(jié)鏈接:

獲取該小說每個章節(jié)的url地址,并創(chuàng)建小說文件

4.獲取單頁文章的內(nèi)容并保存到本地

這里有個小技巧:

從網(wǎng)上爬下來的文件很多時候都是帶著
之類的格式化標(biāo)簽,

可以通過一個簡單的方法把它過濾掉:

html = get_html(url).replace('
', '\n')

這里單單過濾了一種標(biāo)簽,并將其替換成‘\n’用于文章的換行,

6.主函數(shù)

7.輸出結(jié)果

5.缺點:

本次爬蟲寫的這么順利,更多的是因為爬的網(wǎng)站是沒有反爬蟲技術(shù),以及文章分類清晰,結(jié)構(gòu)優(yōu)美。

但是,按照這篇文的思路去爬取小說,

大概計算了一下:

一篇文章需要:0.5s

一本小說(1000張左右):8.5分鐘

全部排行榜(60本):8.5小時!

那么,這種單線程的爬蟲,速度如何能提高呢?

自己寫個多線程模塊?

其實還有更好的方式:Scrapy框架

后面可將這里的代碼重構(gòu)一邊遍,

速度會幾十倍甚至幾百倍的提高了!

這其實也是多線程的威力!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 爬蟲
    +關(guān)注

    關(guān)注

    0

    文章

    82

    瀏覽量

    6813

原文標(biāo)題:爬蟲實踐---一次下完所有小說:排行榜小說批量下載

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    HarmonyOS開發(fā)案例:【排行榜頁面】

    本課程使用聲明式語法和組件化基礎(chǔ)知識,搭建一個可刷新的排行榜頁面。在排行榜頁面中,使用循環(huán)渲染控制語法來實現(xiàn)列表數(shù)據(jù)渲染,使用@Builder創(chuàng)建排行列表布局內(nèi)容,使用裝飾器@State、@Prop、@Link來管理組件狀態(tài)。
    的頭像 發(fā)表于 04-30 16:16 ?1865次閱讀
    HarmonyOS開發(fā)案例:【<b class='flag-5'>排行榜</b>頁面】

    中國IC設(shè)計公司排行榜

    作者:林曉林  中國IC設(shè)計公司排行榜:近日,市場調(diào)研公司iSuppli出臺了2005年度中國IC設(shè)計公司排行榜,與中國半導(dǎo)體協(xié)會的排名不同,此次名列榜首的是來自香港的晶門
    發(fā)表于 05-26 14:29

    2013年2月份編程軟件排行榜,LabVIEWTop27,進(jìn)步很大。

    本帖最后由 sushu 于 2013-2-13 10:58 編輯 剛剛上網(wǎng)發(fā)現(xiàn)編程軟件排名,關(guān)注的LabVIEW現(xiàn)在已經(jīng)是27位了,小開心一下。TIOBE編程語言社區(qū)排行榜是編程語言流行趨勢
    發(fā)表于 11-06 12:40

    資料下載排行榜

    資料下載排行榜,怎么就那幾個啊,怎么下載到人氣高的資料?資料茫茫,我相信大家的眼睛雪亮的。求方法收集些好的資料。。。
    發(fā)表于 03-05 16:24

    各種排行榜匯總貼!?。。。?/a>

    本帖最后由 dongyumin 于 2013-7-31 11:39 編輯 1.2012網(wǎng)上各地年終獎排行榜,科技、電子企業(yè)全面領(lǐng)跑!https://bbs.elecfans.com
    發(fā)表于 07-30 11:55

    2014年4月方案公司出貨量排行榜

    。而其他方案廠商憑借海外市場以及國內(nèi)中小品牌、中低端市場持續(xù)穩(wěn)扎穩(wěn)守。2014年4月方案公司出貨量排行榜如下:(更多精彩關(guān)注公眾微信號:ittbank)
    發(fā)表于 06-23 11:41

    2014年10月 TIOBE 編程語言排行榜發(fā)布

    2014年10月的 TIOBE 編程語言排行榜發(fā)布了,該版本最大的兩點是 Google 的 Dart 語言首次進(jìn)入前 20 名。其競爭者包括 CoffeeScript 目前排名 133,TypeScript 排名 122.想知道完整的排名表格請回復(fù)
    發(fā)表于 12-08 13:46

    小米放出“手機(jī)電量排行榜” 為續(xù)航神機(jī)Max 2造勢

    小米手機(jī)家族的電量排行榜,并向網(wǎng)友征詢:“你覺得小米Max2多大電量夠你用? ”從排行榜來看,現(xiàn)款小米Max以4850mAh的容量排名第一,其次是小米MIX(4400mAh)、紅米4(4100mAh
    發(fā)表于 06-03 14:20

    MapReduce框架音樂排行榜案例

    Hadoop綜合實戰(zhàn)之MapReduce運(yùn)算優(yōu)化——音樂排行榜
    發(fā)表于 10-16 12:20

    求職必知獨(dú)角獸公司排行榜

    世界第 3 的滴滴裁員,求職必知獨(dú)角獸公司排行榜
    發(fā)表于 06-18 07:30

    2019年2月編程語言排行榜分享

    2019年2月編程語言排行榜
    發(fā)表于 07-14 10:28

    【年度盤點】全民投票,電源技術(shù)論壇貢獻(xiàn)排行榜

    此帖將總結(jié)盤點2020全年電源技術(shù)論壇貢獻(xiàn)排行榜,所有上榜的用戶從資料/問答/經(jīng)驗/討論TOP5榜單中產(chǎn)生,需要大家在所有候選用戶中進(jìn)行投票,最終投票結(jié)果排行TOP3的用戶獲得相應(yīng)禮品
    發(fā)表于 01-12 15:04

    【年度盤點】全民投票,STM32/STM8技術(shù)論壇貢獻(xiàn)排行榜

    此帖將總結(jié)盤點2020全年STM32/STM8技術(shù)論壇貢獻(xiàn)排行榜,所有上榜的用戶從資料/問答/經(jīng)驗/討論TOP5榜單中產(chǎn)生,需要大家在所有候選用戶中進(jìn)行投票,最終投票結(jié)果排行TOP3的
    發(fā)表于 01-12 18:37

    【年度盤點】全民投票,labVIEW技術(shù)論壇貢獻(xiàn)排行榜

    此帖將總結(jié)盤點2020全年labVIEW論壇貢獻(xiàn)排行榜,所有上榜的用戶從資料/問答/經(jīng)驗/討論TOP5榜單中產(chǎn)生,需要大家在所有候選用戶中進(jìn)行投票,最終投票結(jié)果排行TOP3的用戶獲得相
    發(fā)表于 01-28 17:50

    2020年最新主板型號排行榜 精選資料推薦

    電腦硬件,那么對于比較重要的部件都要精心挑選,比如主板是承載所有部件的成員,也是很重要的,下面小編就給大家分享一下2020年最新主板型號性能排行榜天梯圖吧。2020主板型號天梯圖2020主板選購指南一、Intel、AMD電腦主板的辨別1.Intel和AMD處理器所用的主板
    發(fā)表于 07-26 06:16