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

資訊專(zhuān)欄INFORMATION COLUMN

python爬蟲(chóng)——爬取小說(shuō) | 探索白子畫(huà)和花千骨的愛(ài)恨情仇

newsning / 3135人閱讀

摘要:先打開(kāi)花千骨小說(shuō)的目錄頁(yè),是這樣的。網(wǎng)頁(yè)結(jié)構(gòu)分析首先,目錄頁(yè)左上角有幾個(gè)可以提高你此次爬蟲(chóng)成功后成就感的字眼暫不提供花千骨全集下載。打開(kāi)盤(pán)查看花千骨文件。


知識(shí)就像碎布,記得“縫一縫”,你才能華麗麗地亮相。


1.Beautiful Soup 1.Beautifulsoup 簡(jiǎn)介

此次實(shí)戰(zhàn)從網(wǎng)上爬取小說(shuō),需要使用到Beautiful Soup。
Beautiful Soup為python的第三方庫(kù),可以幫助我們從網(wǎng)頁(yè)抓取數(shù)據(jù)。
它主要有如下特點(diǎn):

1.Beautiful Soup可以從一個(gè)HTML或者XML提取數(shù)據(jù),它包含了簡(jiǎn)單的處理、遍歷、搜索文檔樹(shù)、修改網(wǎng)頁(yè)元素等功能。可以通過(guò)很簡(jiǎn)短地代碼完成我們地爬蟲(chóng)程序。

2.Beautiful Soup幾乎不用考慮編碼問(wèn)題。一般情況下,它可以將輸入文檔轉(zhuǎn)換為unicode編碼,并且以u(píng)tf-8編碼方式輸出,

2.Beautiful Soup安裝

win命令行下:

pip install beautifusoup4
3.Beautiful Soup基礎(chǔ)

大家可以參考文檔來(lái)學(xué)習(xí)(中文版的哦):

[http://beautifulsoup.readthedocs.io/zh_CN/latest/#id8]

對(duì)于本次爬蟲(chóng)任務(wù),只要了解以下幾點(diǎn)基礎(chǔ)內(nèi)容就可以完成:
1.Beautiful Soup的對(duì)象種類(lèi):

Tag

Navigablestring

BeautifulSoup

Comment

2.遍歷文檔樹(shù):find、find_all、find_next和children
3.一點(diǎn)點(diǎn)HTML和CSS知識(shí)(沒(méi)有也將就,現(xiàn)學(xué)就可以)

2.爬取小說(shuō)花千骨 1.爬蟲(chóng)思路分析

本次爬取小說(shuō)的網(wǎng)站為136書(shū)屋。
先打開(kāi)花千骨小說(shuō)的目錄頁(yè),是這樣的。

我們的目的是找到每個(gè)目錄對(duì)應(yīng)的url,并且爬取其中地正文內(nèi)容,然后放在本地文件中。

2.網(wǎng)頁(yè)結(jié)構(gòu)分析

首先,目錄頁(yè)左上角有幾個(gè)可以提高你此次爬蟲(chóng)成功后成就感的字眼:暫不提供花千骨txt全集下載。
繼續(xù)往下看,發(fā)現(xiàn)是最新章節(jié)板塊,然后便是全書(shū)的所有目錄。我們分析的對(duì)象便是全書(shū)所有目錄。點(diǎn)開(kāi)其中一個(gè)目錄,我們便可以都看到正文內(nèi)容。

按F12打開(kāi)審查元素菜單。可以看到網(wǎng)頁(yè)前端的內(nèi)容都包含在這里。

我們的目的是要找到所有目錄的對(duì)應(yīng)鏈接地址,爬取每個(gè)地址中的文本內(nèi)容。
有耐心的朋友可以在里面找到對(duì)應(yīng)的章節(jié)目錄內(nèi)容。有一個(gè)簡(jiǎn)便方法是點(diǎn)擊審查元素中左上角箭頭標(biāo)志的按鈕,然后選中相應(yīng)元素,對(duì)應(yīng)的位置就會(huì)加深顯示。

這樣我們可以看到,每一章的鏈接地址都是有規(guī)則地存放在

  • 中。而這些
  • 又放在
    中。

    我不停地強(qiáng)調(diào)“我們的目的”是要告訴大家,思路很重要。爬蟲(chóng)不是約pao,蒙頭就上不可取。

    3.單章節(jié)爬蟲(chóng)

    剛才已經(jīng)分析過(guò)網(wǎng)頁(yè)結(jié)構(gòu)。我們可以直接在瀏覽器中打開(kāi)對(duì)應(yīng)章節(jié)的鏈接地址,然后將文本內(nèi)容提取出來(lái)。

    我們要爬取的內(nèi)容全都包含在這個(gè)

    里面。
    代碼整理如下:

    from urllib import request
    from bs4 import BeautifulSoup
    
    if __name__ == "__main__":
        # 第8章的網(wǎng)址
        url = "http://www.136book.com/huaqiangu/ebxeew/"
        head = {}
        # 使用代理
        head["User-Agent"] = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19"
        req = request.Request(url, headers = head)
        response = request.urlopen(req)
        html = response.read()
        # 創(chuàng)建request對(duì)象
        soup = BeautifulSoup(html, "lxml")
        # 找出div中的內(nèi)容
        soup_text = soup.find("div", id = "content")
        # 輸出其中的文本
        print(soup_text.text)
        
    

    運(yùn)行結(jié)果如下:

    這樣,單章節(jié)內(nèi)容爬取就大功告成了。

    4.小說(shuō)全集爬蟲(chóng)

    單章節(jié)爬蟲(chóng)我們可以直接打開(kāi)對(duì)應(yīng)的章節(jié)地址解析其中的文本,全集爬蟲(chóng)我們不可能讓爬蟲(chóng)程序在每章節(jié)網(wǎng)頁(yè)內(nèi)中跑一遍,如此還不如復(fù)制、粘貼來(lái)的快。
    我們的思路是先在目錄頁(yè)中爬取所有章節(jié)的鏈接地址,然后再爬取每個(gè)鏈接對(duì)應(yīng)的網(wǎng)頁(yè)中的文本內(nèi)容。說(shuō)來(lái),就是比單章節(jié)爬蟲(chóng)多一次解析過(guò)程,需要用到Beautiful Soup遍歷文檔樹(shù)的內(nèi)容。

    1.解析目錄頁(yè)

    在思路分析中,我們已經(jīng)了解了目錄頁(yè)的結(jié)構(gòu)。所有的內(nèi)容都放在一個(gè)

    中。

    這兒有兩個(gè)一模一樣的


    第一個(gè)
    包含著最近更新的章節(jié),第二個(gè)
    包含著全集內(nèi)容。
    請(qǐng)注意,我們要爬取的是第二個(gè)
    中的內(nèi)容。
    代碼整理如下:

    from urllib import request
    from bs4 import BeautifulSoup
    
    if __name__ == "__main__":
        # 目錄頁(yè)
        url = "http://www.136book.com/huaqiangu/"
        head = {}
        head["User-Agent"] = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19"
        req = request.Request(url, headers = head)
        response = request.urlopen(req)
        html = response.read()
        # 解析目錄頁(yè)
        soup = BeautifulSoup(html, "lxml")
        # find_next找到第二個(gè)
    soup_texts = soup.find("div", id = "book_detail", class_= "box1").find_next("div") # 遍歷ol的子節(jié)點(diǎn),打印出章節(jié)標(biāo)題和對(duì)應(yīng)的鏈接地址 for link in soup_texts.ol.children: if link != " ": print(link.text + ": ", link.a.get("href"))

    執(zhí)行結(jié)果如圖:

    2.爬取全集內(nèi)容

    將每個(gè)解析出來(lái)的鏈接循環(huán)代入到url中解析出來(lái),并將其中的文本爬取出來(lái),并且寫(xiě)到本地F:/huaqiangu.txt中。
    代碼整理如下:

    from urllib import request
    from bs4 import BeautifulSoup
    
    if __name__ == "__main__":
        url = "http://www.136book.com/huaqiangu/"
        head = {}
        head["User-Agent"] = "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19"
        req = request.Request(url, headers = head)
        response = request.urlopen(req)
        html = response.read()
        soup = BeautifulSoup(html, "lxml")
        soup_texts = soup.find("div", id = "book_detail", class_= "box1").find_next("div")
        # 打開(kāi)文件
        f = open("F:/huaqiangu.txt","w")
        # 循環(huán)解析鏈接地址
        for link in soup_texts.ol.children:
            if link != "
    ":
                download_url = link.a.get("href")
                download_req = request.Request(download_url, headers = head)
                download_response = request.urlopen(download_req)
                download_html = download_response.read()
                download_soup = BeautifulSoup(download_html, "lxml")
                download_soup_texts = download_soup.find("div", id = "content")
                # 抓取其中文本
                download_soup_texts = download_soup_texts.text
                # 寫(xiě)入章節(jié)標(biāo)題
                f.write(link.text + "
    
    ")
                # 寫(xiě)入章節(jié)內(nèi)容
                f.write(download_soup_texts)
                f.write("
    
    ")
        f.close()
        

    執(zhí)行結(jié)果顯示 [Finished in 32.3s] 。

    打開(kāi)F盤(pán)查看花千骨文件。

    爬蟲(chóng)成功。備好紙巾,快快去感受尊上和小骨的虐戀吧。

    5.總結(jié)

    代碼還有很多改進(jìn)的地方。例如文本中包含廣告的js代碼可以去除,還可以加上爬蟲(chóng)進(jìn)度顯示等等。實(shí)現(xiàn)這些功能需要包含正則表達(dá)式和os模塊知識(shí),就不多說(shuō)了,大家可以繼續(xù)完善。


    碼字辛苦,碼代碼費(fèi)神,文字和代碼同碼更是艱辛無(wú)比。如果您覺(jué)得文章有那么一丟丟價(jià)值,請(qǐng)不要吝嗇您的贊賞。

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

    轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/40746.html

    相關(guān)文章

    • Python3 爬蟲(chóng) requests+BeautifulSoup4(BS4) 爬取小說(shuō)網(wǎng)站數(shù)據(jù)

      摘要:剛學(xué)爬蟲(chóng)不久,迫不及待的找了一個(gè)網(wǎng)站練手,新筆趣閣一個(gè)小說(shuō)網(wǎng)站。繼續(xù)學(xué)習(xí),有改進(jìn)方案的歡迎提出來(lái),一起交流。 剛學(xué)Python爬蟲(chóng)不久,迫不及待的找了一個(gè)網(wǎng)站練手,新筆趣閣:一個(gè)小說(shuō)網(wǎng)站。 前提準(zhǔn)備 安裝Python以及必要的模塊(requests,bs4),不了解requests和bs4的同學(xué)可以去官網(wǎng)看個(gè)大概之后再回來(lái)看教程 爬蟲(chóng)思路 剛開(kāi)始寫(xiě)爬蟲(chóng)的小白都有一個(gè)疑問(wèn),進(jìn)行到什么時(shí)候...

      taoszu 評(píng)論0 收藏0
    • Python3 爬蟲(chóng) scrapy框架 爬取小說(shuō)網(wǎng)站數(shù)據(jù)

      摘要:上次用寫(xiě)的爬蟲(chóng)速度很感人,今天打算用框架來(lái)實(shí)現(xiàn),看看速度如何。 上次用requests寫(xiě)的爬蟲(chóng)速度很感人,今天打算用scrapy框架來(lái)實(shí)現(xiàn),看看速度如何。 爬蟲(chóng)步驟 第一步,安裝scrapy,執(zhí)行一下命令 pip install Scrapy 第二步,創(chuàng)建項(xiàng)目,執(zhí)行一下命令 scrapy startproject novel 第三步,編寫(xiě)spider文件,文件存放位置novel/spi...

      王陸寬 評(píng)論0 收藏0
    • 前端開(kāi)發(fā)中的SEO

      摘要:它能夠讓用戶(hù)了解到當(dāng)前的位置,了解網(wǎng)站內(nèi)容的組織方式。標(biāo)記應(yīng)該放在文本中間,即使用替代突兀的標(biāo)記。表格標(biāo)題季度銷(xiāo)售額強(qiáng)調(diào)網(wǎng)頁(yè)中的重要內(nèi)容應(yīng)該使用標(biāo)記,避免使用標(biāo)記對(duì)搜索引擎不友好。 什么是SEO SEO由英文Search Engine Optimization縮寫(xiě)而來(lái), 中文意譯為搜索引擎優(yōu)化。SEO是指從自然搜索結(jié)果獲得網(wǎng)站流量的技術(shù)和過(guò)程,是在了解搜索引擎自然排名機(jī)制的...

      LeexMuller 評(píng)論0 收藏0
    • prototype 與 __proto__ 的愛(ài)恨情仇

      摘要:原文經(jīng)歷了上次的的六道坎發(fā)現(xiàn)編故事有點(diǎn)上癮,而且記憶效果也不錯(cuò)哈哈,今天繼續(xù)嘮叨一下與的愛(ài)恨情仇。它是萬(wàn)物的盡頭,繼承于虛無(wú),為。接著由其衍生出第二神,另外一個(gè),也就是。也估計(jì)是讓人引起誤解的源頭。所以接下來(lái)的問(wèn)題就更容易了,比如。 原文:https://blog.crimx.com/2017/0... 經(jīng)歷了上次的《JavaScript This 的六道坎》 發(fā)現(xiàn)編故事有點(diǎn)上癮,而且...

      Render 評(píng)論0 收藏0
    • 23個(gè)Python爬蟲(chóng)開(kāi)源項(xiàng)目代碼,包含微信、淘寶、豆瓣、知乎、微博等

      摘要:今天為大家整理了個(gè)爬蟲(chóng)項(xiàng)目。地址新浪微博爬蟲(chóng)主要爬取新浪微博用戶(hù)的個(gè)人信息微博信息粉絲和關(guān)注。代碼獲取新浪微博進(jìn)行登錄,可通過(guò)多賬號(hào)登錄來(lái)防止新浪的反扒。涵蓋鏈家爬蟲(chóng)一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...

      jlanglang 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    最新活動(dòng)
  • 閱讀需要支付1元查看
    <