使用requests和re正则表达式库爬虫小说‘斗破苍穹’,可选取任意章节下载到本地
2020-03-06 16:09
127 查看
#爬虫斗破苍穹小说,在C盘新建名为’cang’的文件夹,输入开始章节和结束章节,即可将每一章下载到单独的txt文件中
#txt的文件名为每章的标题
#下载过程中显示下载成功的章节和下载失败的章节,下载完成后显示下载用的总时间。
#由于网站上小说缺少某些章节,输入的开始章节与实际下载章节有差别,这块未细化。
import requests import re import time def download_txt(i, j): #i为起始章节,J为终止章节 headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone \ OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'} for x in range(j-i+1): #共需要下载(j-i+1)章 url = 'http://www.doupoxs.com/doupocangqiong/{}.html'.format(i+x) #每章对应的网址 res = requests.get(url, headers=headers) res.encoding = 'zh-CN' if res.status_code == 200: title = re.findall('<h1>(.*?)</h1>', res.text, re.S)[1] #通过正则表达式获取内容,列表的第1位为标题 data = re.findall('<p>(.*?)</p>', res.text, re.S) #获取文本内容 txt = data[1:-2] #去头掐尾,截取小说内容 file = open('c:/cang/{}.{}.txt'.format(i+x, title), 'w') #打开文件 file.write(title + '\n') #先写入标题 for t in txt: file.write(' ' + t + '\n') #写入正文 file.close() #关闭文件 print('{} 下载完成!'.format(title)) #提示下载进度 else: print('第{}章下载失败!错误代码{}'.format(i+x, res.status_code)) #下载失败提示 pass if __name__ == '__main__': try: time_start = time.time() #读取开始时间 start = int(input('请输入开始章节:')) end = int(input('请输入结束章节:')) download_txt(start, end) #调取下载函数 time_end = time.time() #读取结束时间 time_s = round(time_end - time_start) #计算时间差 print('共耗时:{}秒'.format(time_s)) #打印总耗时 except Exception as e: #若出现错误则执行 print('ERROR', e)
相关文章推荐
- 使用Python3爬虫抓取网页来下载小说
- 爬虫入门【11】Pyspider框架入门—使用HTML和CSS选择器下载小说
- 利用正则表达式爬取网络小说,并按照章节下载到本地
- Python使用(xlrd、requests):根据Excel文件中图片url下载图片到本地
- python 网站爬虫 下载在线盗墓笔记小说到本地的脚本
- python 网站爬虫 下载在线盗墓笔记小说到本地的脚本
- python 站点爬虫 下载在线盗墓笔记小说到本地的脚本
- 爬虫,爬取任意百度图片下载到本地
- Archlinux中使用下载到本地的源代码文件生成package
- 使用python将远程图片下载到本地
- 最新版FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用简解(提供博客园本地下载)
- git使用之如何将github库下载到本地与如何将代码上传github
- git使用之如何将github库下载到本地与如何将代码上传github
- Java 使用urlconnection下载文件或图片并保存到本地
- 使用URLConnection下载文件或图片并保存到本地
- 在使用SVN,下载文件到本地时,一定要把全目录下载下来!
- 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(3)--给事件注册表单添加人员选取器和提交按钮
- 【转载】使用jsp实现文件上传到服务器或者从服务器上下载文件到本地计算机完整说明版
- 使用scrapy制作的小说爬虫
- CaptainGan------使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能