分享一下一個爬取小說的Python代碼,打開筆趣閣的網站上對應的小說名稱,複製網址,替換url的網址即可,下載速度比較慢,僅用於學習Python
#- - - - 爬蟲軟件 - — - -
#從筆趣閣獲取小說的內容,將內容寫到txt文檔中
#打開筆趣閣的網址,打開對應小說的主頁,將網址複製到python中即可
import re
import os
import requests
url = "https://www.biqudu.net/13_13453/"
txt = requests.get(url).content.decode("UTF-8")
urlArray = url.split('/')
urlArray.remove(urlArray[3])
url = urlArray[0] + "//" + urlArray[2] + "/" #只保留筆趣閣的網址
m1 = re.compile(r'<h1>(.+)</h1>') #獲取小說的標題
print(m1.findall(txt)[0].center(23, '='))
file_Name = m1.findall(txt)[0] + ".txt" #文件名稱
m2 = re.compile(r'<a href="/(.+\.html)">(.+)</a>')
raw = m2.findall(txt)
SHJ = [(i[1], url + i[0]) for i in raw] # i[1]爲每一章節標題,url+i[0]爲每章節的內容鏈接
print("目錄已加載完畢!")
m3 = re.compile(r'<div id="content">(.+)<script>chaptererror', re.S) # 每章節小說內容
m4 = re.compile(r"<br/><br/>\u3000\u3000")
isExist = os.path.isfile(file_Name) #判斷路徑下是否存在對應的文件
if isExist:
os.remove(file_Name) #移除存在的文件,防止後續字符寫到前面的文件
with open(file_Name, "a") as f:
for i in SHJ:
print("開始下載--->", i[0])
print("章節網址--->,", i[1])
t1 = requests.get(i[1]).content.decode("UTF-8") # 每章節小說內容獲取
nr = m3.findall(t1) # [0]
nrl = m4.sub('', nr[0])
nrl = nrl.replace("<script>readx();</script>", "") #清除不需要的字符
nrl = nrl.replace("\r\n", "")
nrl = nrl.replace("。”", "”")
nrl = nrl.lstrip()
# nrl = " " + nrl
f.write(i[0])
f.write("\n\n")
nrlArray = nrl.split('。')
for j in nrlArray:
f.write(" " + j)
f.write("\n\n")
# f.write(nrl)
f.write("\n\n")
print("下載完畢!")