您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)使用60行python代碼寫一個簡單的筆趣閣爬蟲的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
文章目錄
系列文章目錄
前言
一、網(wǎng)頁解析
二、代碼填寫
1.獲取Html及寫入方法
2.其余代碼
總結(jié)
前言
利用python寫一個簡單的筆趣閣爬蟲,根據(jù)輸入的小說網(wǎng)址爬取整個小說并保存到txt文件。爬蟲用到了BeautifulSoup庫的select方法
結(jié)果如圖所示:
本文只用于學(xué)習(xí)爬蟲
一、網(wǎng)頁解析
這里以斗羅大陸小說為例 網(wǎng)址:
http://www.biquge001.com/Book/2/2486/
可以發(fā)現(xiàn)每章的網(wǎng)頁地址和章節(jié)名都放在了 <"p id=list dl dd a>中的a標(biāo)簽中,所以利用BeautfulSoup中的select方法可以得到網(wǎng)址和章節(jié)名
Tag = BeautifulSoup(getHtmlText(url), "html.parser") #這里的getHtmlText是自己寫的獲取html的方法urls = Tag.select("p #list dl dd a")
然后遍歷列表
for url in urls: href = "http://www.biquge001.com/" + url['href'] # 字符串的拼接 拼接成正確的網(wǎng)址 pageName = url.text # 每章的章名
然后每章小說的內(nèi)容都存放在<p id=“content” 里 同理得
substance = Tag.select("p #content") # 文章的內(nèi)容
最后同理在首頁獲取小說的名稱
<"p id = info h2>
bookName = Tag.select("p #info h2")
二、代碼填寫
1.獲取Html及寫入方法
def getHtmlText(url): r = requests.get(url, headers=headers) r.encoding = r.apparent_encoding # 編碼轉(zhuǎn)換 r.raise_for_status() return r.textdef writeIntoTxt(filename, content): with open(filename, "w", encoding="utf-8") as f: f.write(content) f.close() print(filename + "已完成")
2.其余代碼
代碼如下(示例):
url = "http://www.biquge001.com/Book/2/2486/"substanceStr = ""bookName1 = ""html = getHtmlText(url)# 判斷是否存在這個文件Tag = BeautifulSoup(getHtmlText(url), "html.parser")urls = Tag.select("p #list dl dd a")bookName = Tag.select("p #info h2")for i in bookName: bookName1 = i.textif not os.path.exists(bookName1): os.mkdir(bookName1) print(bookName1 + "創(chuàng)建完成")else: print("文件已創(chuàng)建")for url in urls: href = "http://www.biquge001.com/" + url['href'] # 字符串的拼接 拼接成正確的網(wǎng)址 pageName = url.text # 每章的章名 path = bookName1 + "\\" # 路徑 fileName = path + url.text + ".txt" # 文件名 = 路徑 + 章節(jié)名 + ".txt" Tag = BeautifulSoup(getHtmlText(href), "html.parser") # 解析每張的網(wǎng)頁 substance = Tag.select("p #content") # 文章的內(nèi)容 for i in substance: substanceStr = i.text writeIntoTxt(fileName, substanceStr) time.sleep(1)
感謝各位的閱讀!關(guān)于“使用60行python代碼寫一個簡單的筆趣閣爬蟲”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。