Python爬取任意一本小说并保存txt到本地
# -*- coding: utf-8 -*- ''' Python爬取任意一本小说并保存txt到本地 ''' # 导入包 import requests,os from lxml import etree # 定义方法 def downnovel(novname, savpath, ist): url_one = 'https://www.xbiquwx.la/modules/article/search.php?searchkey={}'.format(novname) r = requests.get(url_one).content.decode() b = etree.HTML(r) c = b.xpath('//*[@id="wrapper"]/table/tr[2]/td[1]/a/@href')[0] url = 'https://www.xbiquwx.la'+c r2 = requests.get(url).content b1 = etree.HTML(r2) xsm = os.path.join(savpath, novname) if not os.path.isdir(xsm): os.makedirs(xsm) clist = b1.xpath('//*[@id="list"]/dl/dd') for i in clist: chapter = i.xpath('./a/text()')[0] # 章节名称 link = i.xpath('./a/@href')[0] # 章节链接 r1 = requests.get(url + link).content b2 = etree.HTML(r1) c1 = b2.xpath('//*[@id="content"]/text()') if ist == 2: f = open (xsm + '/' + novname + '.txt', 'a', encoding='utf-8') f.write (chapter + '\n') for d in c1: text = d if ist == 1: f = open (xsm + '/' + chapter + '.txt', 'a+', encoding='utf-8') f.write (text + '\n') print("下载完成:",chapter) if __name__ == '__main__': # 输入要下载的小说名称,不要打错字哦 novname = '明克街13号' # 设置小说的保存路径 savpath = r'D:\Test\txt' # 下面参数输 1 或 2 ist = 2 # 1:每一章都保存一个txt,2:整部小说保存一个txt # 调用方法,开始下载 downnovel(novname, savpath, ist)