爬取小說(步驟四)python

假設(shè)各位老哥已經(jīng)安裝好了bs4 requests這些庫了
這個(gè)小說是隨便挑的,各位也就不用太介意(僅供各位學(xué)習(xí))
python3 實(shí)現(xiàn),網(wǎng)上用python2做爬蟲的太多了,但用python3的還是比較少

雖說步驟四 是脫胎于之前的三個(gè)步驟,但確實(shí)為了更進(jìn)一步而做的一點(diǎn)小突破
這步驟四中,將會(huì)爬取小說對對應(yīng)的目錄鏈接。

  • 通過步驟四中 尋找到的那些url來對逐步訪問,獲取txt并寫入(這個(gè)在之前也都講過了)

  • 沒有看過 步驟一 的朋友們可以點(diǎn)擊下面的鏈接看看步驟一先
    點(diǎn)擊查看步驟一

  • 沒有看過 步驟二 的朋友們可以點(diǎn)擊下面的鏈接看看步驟二先
    點(diǎn)擊查看步驟二

  • 沒有看過 步驟三 的朋友們可以點(diǎn)擊下面的鏈接看看步驟三先
    點(diǎn)擊查看步驟三

  • 獲取整部小說的章節(jié)數(shù)目

  • 通過目錄來進(jìn)行判斷,將那些跟小說無關(guān)的章節(jié) 篩選掉

現(xiàn)在有點(diǎn)晚了,先發(fā)一個(gè)獲取到的目錄代碼,后續(xù)明早在后面補(bǔ)充。有興趣的朋友可以點(diǎn) ‘喜歡’ 這樣就可以保存文章鏈接在之后的喜歡欄中接著看了。(我蠻喜歡這樣做的hihi)

代碼 版本一效果圖

  • 代碼 版本一
import requests
from bs4 import BeautifulSoup
content_url = "http://www.biquge.com.tw/4_4038/"
kv = {'user_agent': 'Mozilla/5.0'}  # 表示是一個(gè)瀏覽器
try:
    r = requests.get(content_url, headers=kv)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text, 'html.parser')
    content_list = soup.find(id='list')
    chapter_list = soup.find_all('dd')
    for chapter in chapter_list:
        print(chapter.find('a').text)
except:
    pass
  • 代碼 版本二(新版)
import requests
from bs4 import BeautifulSoup
urls = []
title = []
content_url = "http://www.biquge.com.tw/4_4038"
kv = {'user_agent': 'Mozilla/5.0'}  # 表示是一個(gè)瀏覽器
book_name = '1.txt'  # 設(shè)置一個(gè)Default書名(雖然在后來肯定是會(huì)找到一個(gè)名字的)
try:
    r = requests.get(content_url, headers=kv)  # 表示自己是一個(gè)瀏覽器
    r.raise_for_status()  # 如果有問題就會(huì)raise一個(gè)問題
    r.encoding = r.apparent_encoding  # 根據(jù)網(wǎng)頁返回的編碼 進(jìn)行調(diào)整
    soup = BeautifulSoup(r.text, 'html.parser')
    content_list = soup.find(id='list')
    chapter_list = soup.find_all('dd')
    meta = soup.find('head').find(attrs={'property': "og:novel:book_name"})
    book_name = meta['content'] + '.txt'
    print(book_name[:book_name.index('.txt')] + '寫入中')
    for chapter in chapter_list:  # 整合得到所有跟內(nèi)容有關(guān)的鏈接(會(huì)有哪些跟內(nèi)容無關(guān)的章節(jié)的)
        if '第' in chapter.find('a').text and '章' in chapter.find('a').text:
            title.append(chapter.find('a').text)
            urls.append(content_url[:content_url.rindex('/')] + chapter.find('a')['href'])
except:
    pass

進(jìn)階文章:
爬取小說(步驟五)python
爬取小說(步驟六)python

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容