溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何用BeautifulSoup4爬取小說(shuō)資源

發(fā)布時(shí)間:2021-12-03 10:02:44 來(lái)源:億速云 閱讀:157 作者:柒染 欄目:編程語(yǔ)言

今天就跟大家聊聊有關(guān)如何用BeautifulSoup4爬取小說(shuō)資源,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

隨便找了一個(gè)小說(shuō)網(wǎng)站,沒(méi)有爬取文章內(nèi)容,主要是理解一下BeautifulSoup4的使用方法,如果搞懂本文了,爬取文章都不是問(wèn)題.
代碼最后生成一個(gè)字典如下:
{'玄幻':[['書(shū)名1','作者1','書(shū)鏈接1'],
         ['書(shū)名2','作者2','書(shū)鏈接2']
       ],
 '恐怖':[['書(shū)名1','作者1','書(shū)鏈接1'],
         ['書(shū)名2','作者2','書(shū)鏈接2']
       ]
}
代碼正文:

請(qǐng)安裝requests和bs4(BeautifulSoup)

from bs4 import BeautifulSoup
import requests,sys
sys.setrecursionlimit(10000)  # 防止超出遞歸深度報(bào)錯(cuò)

Url_Index = 'http://m.pfwx.com'

r = requests.get(Url_Index)
r.encoding = 'utf-8'
content = r.text
soup = BeautifulSoup(content,features='html.parser')

target = soup.find('div',class_='nav') # 只獲取第一個(gè)包含class='nav'屬性的div標(biāo)簽
tar = target.find_all('a')  # 過(guò)濾出a標(biāo)簽

# 獲取index的欄目
Index_Menu = {}
for so in tar:
    TEXT = so.get_text()
    HREF = Url_Index + so['href']       # 獲取href屬性的值
    Index_Menu[TEXT] = HREF

# 獲取分類
Class_Page = Index_Menu['分類']
r = requests.get(url=Class_Page)
r.encoding = 'utf-8'
content = r.text
soup = BeautifulSoup(content,features='html.parser')
tag = soup.body.find_all('li',class_='prev')
Menu = {}
for so in tag:
    TEXT = so.get_text() # 獲取文本
    HREF = so.a.attrs['href'] # 獲取a標(biāo)簽中的href屬性
    # 生成各個(gè)分類的Url
    Category_Url = Url_Index + HREF
    Menu[TEXT] = Category_Url

# 獲取每種分類的書(shū)信息
for ClassName in Menu:
    Book_List = []
    def make(url):
        '''獲取所有的書(shū)信息,并且交給函數(shù)IF判斷是否還有下一頁(yè),如果有則繼續(xù)獲取書(shū)的信息'''
        r = requests.get(url=url)
        content = r.text
        soup = BeautifulSoup(content, features='html.parser')
        target = soup.find_all('a', class_='blue')
        for so in target:
            BookName = so.get_text()                        # 書(shū)名
            IMHOW_NAME = so.next_sibling.split('/')[1]  # 作者名
            HREF = Url_Index + so['href']               # 書(shū)的鏈接
            Book_List.append([BookName,IMHOW_NAME,HREF])

        Next_Page = soup.find('div', class_='page')
        IF(NextPage=Next_Page)

    def IF(NextPage):
        '''判斷是否還有下一頁(yè),如果有則繼續(xù)循環(huán)'''
        for Page in NextPage.find_all('a'):
            if Page.get_text() == '下頁(yè)':
                '''判斷如果還有下頁(yè),則繼續(xù)獲取書(shū)的信息'''
                Url = Url_Index + Page['href']
                make(url=Url)

    url=Menu[ClassName] # 獲取當(dāng)前分類的URL
    make(url) # 獲取當(dāng)前分類的所有書(shū)信息
    Menu[ClassName] = Book_List # 最后生成的信息都在這個(gè)字典里面;格式{'玄幻':[['書(shū)名1','作者1','書(shū)鏈接1'],['書(shū)名2','作者2','書(shū)鏈接2']]}

看完上述內(nèi)容,你們對(duì)如何用BeautifulSoup4爬取小說(shuō)資源有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI