昨天已经用Python编程完成了 从《续蜀山剑侠传》连载网站页面上获取目录信息,包括目录名称和网址,进而读取每个网址对应的网页中连载内容,详见:

python编程获取续蜀山剑侠传:从目录名称、网址到内容_紫郢剑侠的博客-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/125827266?spm=1001.2014.3001.5501

今天我们要先统计出需要保存的网址数量,然后把每个网页国中的连载内容逐一保存到txt文件中,文件名就用目录名,然后调用记事本打开。为了避免枯燥,我们每保存1个txt就会更新并输出进度。

完整代码如下:

# -*- coding:UTF-8 -*-
import urllib.request, re, sys, os #, win32api#--------------------------
def openUrl(url):try:page = urllib.request.urlopen(url, data=None, timeout=5)except urllib.error.HTTPError as e:print(e.code)print(e.reason)return ''except urllib.error.URLError as e:print(e.reason)return ''else:    html = page.read().decode('utf-8')return html#--------------------------
def getCon(html, tag):i = html.find(tag)if i == -1:print ('没有找到' + tag)return ''else:con = html[i+len(tag):]#print ("前30个字符:" + con[:30])tag = 'ul'tag_pat = r'(?<=<'+ tag + '>).*?(?=</' + tag + '>)'  tag_ex = re.compile(tag_pat, re.M|re.S) con = re.findall(tag_ex, con)#con = html.split('正文')#print (con[0])return con[0]#--------------------------
def showCon(url):print (url)html = openUrl(url)if len(html) <= 0:print ('……未能打开-_-!')return#print (html)#html = html.replace('\u3000', ' ')html = html.replace('', '\n')#取回目res = r'(.*?)'t =  re.findall(res, html, re.I|re.S|re.M)print (t[0])#获取内容res = r'(.*?)'c =  re.findall(res, html, re.I|re.S|re.M)#t = c[0].replace('\u3000',' ')#t = t.replace('','\n')print (c[0])#--------------------------
def showFile (fileSpec):with open(fileSpec, 'r', encoding='utf-8') as f:print (f.read())f.close()#--------------------------
def saveCon (url, path):#print (url)html = openUrl(url)if len(html) <= 0:print ('……未能打开-_-!')return#print (html)#html = html.replace('\u3000', ' ')html = html.replace('', '\n')#取回目res = r'(.*?)'t =  re.findall(res, html, re.I|re.S|re.M)#print (t[0])#获取内容res = r'(.*?)'c =  re.findall(res, html, re.I|re.S|re.M)#t = c[0].replace('\u3000',' ')#t = t.replace('','\n')#print (c[0])print ('至' + t[0] + '.txt')saveFile (t[0], path, c[0])fileSpec = path + '\\' + t[0] + '.txt'showFile (fileSpec)os.system('notepad ' + fileSpec)#win32api.ShellExecute(0, 'open', fileSpec, '', '', 1)#--------------------------
def printList(list, host):#获取textres = r'(.*?)'t =  re.findall(res, list, re.S|re.M)#获取hrefres_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"h = re.findall(res_url, list, re.I|re.S|re.M)for i in range(len(t)):print (str(i+1) + '\t' + t[i] + '\t' + host + h[i])#--------------------------
def getListHref(list, host):#获取text#res = r'(.*?)'#t =  re.findall(res, list, re.S|re.M)#获取hrefres_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"h = re.findall(res_url, list, re.I|re.S|re.M)return h#--------------------------
def saveFile (fileName, path, txt):#write_flag = True# open(file, mode='r', buffering=-1, encoding=None, \#     errors=None, newline=None, closefd=True, opener=None)with open(path + '\\' + fileName + '.txt', 'a', encoding='utf-8') as f:f.write(fileName + '\n\n')f.writelines(txt)f.close()#--------------------------
def saveBook(url, host):#for i in range(len(url)):i = 0href = host + url[i]print ('保存第' + str(i+1) + '个页面' + href)saveCon(href, 'e:\\book')#--------------------------
def showList(list, host):#获取textres = r'(.*?)'t =  re.findall(res, list, re.S|re.M)#获取hrefres_url = r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')"h = re.findall(res_url, list, re.I|re.S|re.M)showCon(host + h[0])  #for i in range(len(t)):#  showCon (host + h[i])#--------------------------
def main():url = 'http://www.mengxi.net/book/263745/index.html'i = url.index('/', 7)host = url[0 : i]#print ('分析' + url)html = openUrl(url)if len(html) > 0:tag = '正文'list = getCon(html, tag)#printList(list, host)#showList(list, host)h = getListHref(list, host)print('共有' + str(len(h)) + '个页面')saveBook(h, host)main()

代码运行结果如下:

在Python中调用Windows的应用程序还是很方便的。

python编程获取续蜀山剑侠传:目录名称、网址、内容,保存到文件相关推荐

  1. Python编程基础 - 使用临时文件和临时目录

    Python编程基础 - 使用临时文件和临时目录 李俊才 CSDN博客:jcLee1995 291148484@163.com [导读]:本文先介绍了什么是临时文件,然后围绕Python内建模块Tem ...

  2. 蜀山剑侠传打开服务器更新第一个文件失败,《蜀山剑侠传》冲级达人侠岚勇闯“左元洞”...

    厂商特供稿,以下内容并不代表网易言论 于2012年12月28日封测的<蜀山剑侠传>,是国内顶尖的横版格斗网游大作之一!本次封测,<蜀山剑侠传>携大量新游戏内容邀玩家体验,引来大 ...

  3. 如何python编程获取,分析可转债,让大家实现财富的小目标?

    概要: 本文从可转债解释开始,对可转债的特点,不亏钱的特点,如何python编程获取,分析可转债,然后从实际例子出发给大家对目前市面上的可转债进行实战分析,让大家实现财富的小目标. 可转债是什么? & ...

  4. 新版蜀山剑侠传3D立体格斗全方位剖析

    国人终极格斗<蜀山剑侠传>,突破传统横版格斗"二次元"瓶颈,率先开辟3D立体横版格斗网游先河,实现"有纬度"的空间化立体式全景3D战斗体验!游戏大量 ...

  5. 树莓派3B上用Python编程获取TSL2561光传感器数据

    在树莓派3B上用Python编程,通过I2C协议,利用TSL2561光照强度传感器获取环境光强 嵌入式萌新一枚,文章有解释不清或者错误的地方希望大佬能在评论区指正,感激不尽! 大概原理: 通过TSL2 ...

  6. python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址

    认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...

  7. python获取工程根目录_【Python】获取当前项目根路径/目录

    """ -*- coding:utf-8 -*- @Time :2020/9/23 18:16 @Author :Jarvis @File :jar_project_ut ...

  8. Windows编程—获取Chrome浏览器的安装目录

    文章目录 前言 方式一 说明 代码 方式二 说明 代码 前言 在Windows平台开发时,有时候需要唤起Chrome浏览器访问指定url, 这时就需要知道Chrome浏览器的安装路径了.笔者这里总结了 ...

  9. python获取ftp所有文件名_在Python中获取最新的FTP文件夹名称

    小编典典 如果您的FTP服务器支持MLSD命令,则解决方案很简单: 如果您要根据修改时间戳记做出决定: entries = list(ftp.mlsd()) Only interested in di ...

最新文章

  1. 设计模式学习(一) 基本理念
  2. spring@PropertySource用法
  3. mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程
  4. Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器
  5. 【362】python 正则表达式
  6. tensorflows十五 再探Momentum和Nesterov's accelerated gradient descent 利用自动控制PID概念引入误差微分控制超参数改进NAGD,速度快波动小
  7. MySQL中的翻页优化和延迟缓存
  8. 在JSP中常见问题,防止SpringMVC拦截器拦截js等静态资源文件的解决方案
  9. java的有意思的_发现一个有意思的项目banana
  10. java web应用程序_说说Java Web中的Web应用程序|乐字节
  11. DNS服务器构建(一)-—构建域名缓存服务器
  12. 步步为营-83-用户控件
  13. C++11 static_assert 使用方法及assert 与 #error
  14. HBase学习总结(1):HBase的下载与安装
  15. lisp坐标一键生成_如何利用lisp程序一次性提取CAD中点的坐标(不要点击每个点,太多了麻烦)...
  16. jsp:setProperty的用法
  17. 通过云打码实现验证码识别
  18. 测试计划测试用例及用例评审
  19. 一文读懂babel的使用
  20. 一个问题来对比文心一言和chatgpt

热门文章

  1. 中国软实力瞭望:十大知名调查研究咨询公司
  2. 你们要的公众号运营教程来了!
  3. Modbus/Profibus协议转换原理
  4. 怎样把照片中的头像扶正_微信头像看出你的性格,准得可怕!!
  5. 4DGenome:染色质相互作用数据库
  6. iam是什么意思中文_iam是什么意思
  7. FX3开发板 及 原理图
  8. 一张图生成定制版二次元人脸头像,还能“模仿”你的表情
  9. 红象云腾童小军:建立开放联盟,加速大数据处理,完善大数据生态
  10. 腾讯位置 - 产品介绍(结尾附源码)