這篇文章主要介紹用python爬蟲下載小說的示例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡營銷推廣、網(wǎng)站重做改版、烏恰網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5高端網(wǎng)站建設、成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為烏恰等各大城市提供網(wǎng)站開發(fā)制作服務。
只要利用 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 之后,自然是獲取每一個頁面的內(nèi)容,然后解析出小說的內(nèi)容,保存到文件夾。這里又要用到 requests,我們寫個函數(shù)復用。
def get_html(url):
# 偽裝瀏覽器的頭,這部大家應該都理解:
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獲取小說內(nèi)容也很簡單,BeautifulSoup 解析出網(wǎng)頁,如果直接用 BeautifulSoup 通過提取網(wǎng)頁 html 標簽來獲取小說的話,會出現(xiàn)排版問題,不夠美觀。這里我們?nèi)匀挥谜齽t匹配小說內(nèi)容。
for each in all_urls:
soup = BeautifulSoup(get_html(each).text, 'lxml')
# 獲取章節(jié)標題
title = soup.title.text.split('-')[1]
all_info = soup.find('dd', id="contents")
# 使用正則匹配章節(jié)內(nèi)容
p = r'<dd id="contents">(.*?)</dd>'
# 處理正則在匹配錯誤章節(jié),都是作者牢騷的內(nèi)容,不影響小說內(nèi)容抓取,直接過濾
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爬蟲下載小說的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文標題:用python爬蟲下載小說的示例
分享地址:http://chinadenli.net/article48/jiehep.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、搜索引擎優(yōu)化、移動網(wǎng)站建設、網(wǎng)站維護、品牌網(wǎng)站制作、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)