生活随笔
收集整理的這篇文章主要介紹了
利用python批量下载起点中文网的小说
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
import requests
from lxml import etree
import os# 設計模式 -- 面向對象
class Spider(object):def start_request(self):# 1. 請求網站拿到HTML源代碼,抽取小說名、小說鏈接 創建文件夾response = requests.get("https://www.qidian.com/all")xml = etree.HTML(response.text) # 整理xml文檔對象Bigtit_list = xml.xpath('//div[@class="book-mid-info"]/h4/a/text()') # 小說名Bigsrc_list = xml.xpath('//div[@class="book-mid-info"]/h4/a/@href') # 小說鏈接for Bigtit, Bigsrc in zip(Bigtit_list, Bigsrc_list):if os.path.exists(Bigtit) == False:#創建文件夾os.mkdir(Bigtit)self.next_file(Bigtit, Bigsrc)def next_file(self, Bigtit, Bigsrc):# 2. 請求小說拿到HTML源代碼,抽取章名、章鏈接response = requests.get("http:" + Bigsrc)xml = etree.HTML(response.text) # 整理xml文檔對象Littit_list = xml.xpath('//ul[@class="cf"]/li/a/text()')Litsrc_list = xml.xpath('//ul[@class="cf"]/li/a/@href')for Littit, Litsrc in zip(Littit_list, Litsrc_list):self.finally_file(Bigtit, Littit, Litsrc)def finally_file(self, Bigtit, Littit, Litsrc):# 3. 請求文章拿到HTML源代碼,抽取文章內容,保存數據response = requests.get("http:" + Litsrc)xml = etree.HTML(response.text) # 整理xml文檔對象content = "\n".join(xml.xpath('//div[@class="read-content j_readContent"]/p/text()'))fileName = Bigtit + "\\" + Littit + ".txt"print("正在保存小說文件:" + fileName)with open(fileName, "w", encoding="utf-8") as f:f.write(content)spider = Spider()
spider.start_request()
總結
以上是生活随笔為你收集整理的利用python批量下载起点中文网的小说的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。