python编程获取续蜀山剑侠传:目录名称、网址、内容,保存到文件
昨天已经用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编程获取续蜀山剑侠传:目录名称、网址、内容,保存到文件相关推荐
- Python编程基础 - 使用临时文件和临时目录
Python编程基础 - 使用临时文件和临时目录 李俊才 CSDN博客:jcLee1995 291148484@163.com [导读]:本文先介绍了什么是临时文件,然后围绕Python内建模块Tem ...
- 蜀山剑侠传打开服务器更新第一个文件失败,《蜀山剑侠传》冲级达人侠岚勇闯“左元洞”...
厂商特供稿,以下内容并不代表网易言论 于2012年12月28日封测的<蜀山剑侠传>,是国内顶尖的横版格斗网游大作之一!本次封测,<蜀山剑侠传>携大量新游戏内容邀玩家体验,引来大 ...
- 如何python编程获取,分析可转债,让大家实现财富的小目标?
概要: 本文从可转债解释开始,对可转债的特点,不亏钱的特点,如何python编程获取,分析可转债,然后从实际例子出发给大家对目前市面上的可转债进行实战分析,让大家实现财富的小目标. 可转债是什么? & ...
- 新版蜀山剑侠传3D立体格斗全方位剖析
国人终极格斗<蜀山剑侠传>,突破传统横版格斗"二次元"瓶颈,率先开辟3D立体横版格斗网游先河,实现"有纬度"的空间化立体式全景3D战斗体验!游戏大量 ...
- 树莓派3B上用Python编程获取TSL2561光传感器数据
在树莓派3B上用Python编程,通过I2C协议,利用TSL2561光照强度传感器获取环境光强 嵌入式萌新一枚,文章有解释不清或者错误的地方希望大佬能在评论区指正,感激不尽! 大概原理: 通过TSL2 ...
- python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址
认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...
- python获取工程根目录_【Python】获取当前项目根路径/目录
""" -*- coding:utf-8 -*- @Time :2020/9/23 18:16 @Author :Jarvis @File :jar_project_ut ...
- Windows编程—获取Chrome浏览器的安装目录
文章目录 前言 方式一 说明 代码 方式二 说明 代码 前言 在Windows平台开发时,有时候需要唤起Chrome浏览器访问指定url, 这时就需要知道Chrome浏览器的安装路径了.笔者这里总结了 ...
- python获取ftp所有文件名_在Python中获取最新的FTP文件夹名称
小编典典 如果您的FTP服务器支持MLSD命令,则解决方案很简单: 如果您要根据修改时间戳记做出决定: entries = list(ftp.mlsd()) Only interested in di ...
最新文章
- 设计模式学习(一) 基本理念
- spring@PropertySource用法
- mysql子查询教行子查询_MySQL中列子查询与行子查询操作的学习教程
- Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器
- 【362】python 正则表达式
- tensorflows十五 再探Momentum和Nesterov's accelerated gradient descent 利用自动控制PID概念引入误差微分控制超参数改进NAGD,速度快波动小
- MySQL中的翻页优化和延迟缓存
- 在JSP中常见问题,防止SpringMVC拦截器拦截js等静态资源文件的解决方案
- java的有意思的_发现一个有意思的项目banana
- java web应用程序_说说Java Web中的Web应用程序|乐字节
- DNS服务器构建(一)-—构建域名缓存服务器
- 步步为营-83-用户控件
- C++11 static_assert 使用方法及assert 与 #error
- HBase学习总结(1):HBase的下载与安装
- lisp坐标一键生成_如何利用lisp程序一次性提取CAD中点的坐标(不要点击每个点,太多了麻烦)...
- jsp:setProperty的用法
- 通过云打码实现验证码识别
- 测试计划测试用例及用例评审
- 一文读懂babel的使用
- 一个问题来对比文心一言和chatgpt