溫馨提示×

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

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

用python爬蟲(chóng)下載小說(shuō)的示例

發(fā)布時(shí)間:2020-11-30 09:36:49 來(lái)源:億速云 閱讀:231 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹用python爬蟲(chóng)下載小說(shuō)的示例,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

只要利用 requests 和 Beautifulsoup 模塊就可以獲取到每一章節(jié)的 url 集合了。

import requests
from bs4 import BeautifulSoup
 
html = requests.get(url)
soup = BeautifulSoup(html.text, 'lxml')
all_td = soup.find_all('td', class_="L")
for a in all_td:
    all_urls = a.find('a').get('href')
print(all_urls)

獲取所有章節(jié) url 之后,自然是獲取每一個(gè)頁(yè)面的內(nèi)容,然后解析出小說(shuō)的內(nèi)容,保存到文件夾。這里又要用到 requests,我們寫(xiě)個(gè)函數(shù)復(fù)用。

def get_html(url):
    # 偽裝瀏覽器的頭,這部大家應(yīng)該都理解:
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
    html = requests.get(url,headers=headers)
return html

獲取小說(shuō)內(nèi)容也很簡(jiǎn)單,BeautifulSoup 解析出網(wǎng)頁(yè),如果直接用 BeautifulSoup 通過(guò)提取網(wǎng)頁(yè) html 標(biāo)簽來(lái)獲取小說(shuō)的話,會(huì)出現(xiàn)排版問(wèn)題,不夠美觀。這里我們?nèi)匀挥谜齽t匹配小說(shuō)內(nèi)容。

for each in all_urls:
    soup = BeautifulSoup(get_html(each).text, 'lxml')
    # 獲取章節(jié)標(biāo)題
    title = soup.title.text.split('-')[1]
    all_info = soup.find('dd', id="contents")
    # 使用正則匹配章節(jié)內(nèi)容
    p = r'<dd id="contents">(.*?)</dd>'
    # 處理正則在匹配錯(cuò)誤章節(jié),都是作者牢騷的內(nèi)容,不影響小說(shuō)內(nèi)容抓取,直接過(guò)濾
    try:
        info = re.findall(p, str(all_info), re.S)[0]
        # 下載到txt文件
        with open(title + '.txt', 'w', encoding='gbk', errors='ignore') as f:
            f.write(info.replace('<br/>', '\n'))
    print('save sucessful: %s' % title)
    except:
        print('re faild: %s' % title)

以上是“用python爬蟲(chóng)下載小說(shuō)的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(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