看网络小说一般会攒上一波,然后导入Kindle里面去看,但是攒的多了,机械的Ctrl+C和Ctrl+V实在是OUT,所以就出现了此文。
其实Python我也是小白,用它的目的主要是它强大文本处理能力和网络支持,以及许多好用的库,不需要自己造轮子。而且真心比C方便啊(真是用了才知道)
我要获取的主要是3个东西:
还有就是注意网页的编码,这个网页的编码是GBK,但在实际运行过程中,我用GBK会出现网页解码错误:
UnicodeDecodeError: ‘gbk' codec can't decode bytes in position 2-3: illegal multibyte sequence
所以换用了gb18030,问题就解决了,因为一般修仙网络小说中,会出现各种王霸之气的文字,你们懂得,所以需要更加牛逼文字库,你们感受一下博大精深的字符编码。
我就知道,大家要这个,哈哈哈。
#主函数 if __name__ == '__main__': global numChapter global NOVERL NOVERL = '大主宰.txt' #NOVERL = '择天记.txt' NOVERL = '武动乾坤.txt' if(NOVERL == '大主宰.txt'): textStartURL = 'http://www.bxwx8.org/b/62/62724/11455540.html';#大主宰第一章的URL textStartURL = 'http://www.bxwx8.org/b/62/62724/28019405.html';#第一千两百三十七章 鬼大师 else: textStartURL = 'http://www.bxwx8.org/b/98/98289/17069215.html';#择天记第一章URL textStartURL = 'http://www.bxwx8.org/b/98/98289/28088874.html';#择天记第七十八章 合剑术 textStartURL = 'http://www.bxwx8.org/b/35/35282/5839471.html';#武动乾坤第一章 #textStartURL = 'http://www.bxwx8.org/b/35/35282/7620539.html';#武动乾坤 nextURL = textStartURL; isEnd = False f = open(NOVERL, 'w', encoding='utf-8') f.close() numChapter = 0; while(not isEnd): nextURL,isEnd = findNextTextURL(nextURL) print('end of capture!') print('获取到 ' + str(numChapter) + ' 章')
#找到 下一章节的URL #获取小说内容 def findNextTextURL(url): global numChapter global NOVERL #如果nextURL == endURL 则返回false if(NOVERL == '大主宰.txt'): endURL = 'http://www.bxwx8.org/b/62/62724/index.html'#大主宰 headURL = 'http://www.bxwx8.org/b/62/62724/'#大主宰 else: endURL = 'http://www.bxwx8.org/b/98/98289/index.html'#择天记 headURL = 'http://www.bxwx8.org/b/98/98289/'#择天记 endURL = 'http://www.bxwx8.org/b/35/35282/index.html'#武动乾坤 headURL = 'http://www.bxwx8.org/b/35/35282/'#武动乾坤 isEnd = False resp = urllib.request.urlopen(url) #处理的字符的确是gbk的,但是其中夹杂的部分特殊字符, #是gbk编码中所没有的如果有些特殊字符是GB18030中有的,但是是gbk中没有的。 #则用gbk去解码,去所不支持的字符,也比如会出错。 #所以,此种情况,可以尝试用和当前编码(gbk)所兼容的但所包含字符更多的编码(gb18030)去解码,或许就可以了。 #allHtml = resp.read().decode('gbk')# allHtml = resp.read().decode('gb18030')# textSoup = BeautifulSoup(allHtml) #章节名 strChapter = textSoup.find(id='title').getText().split(r'【')[0] strChapter = strChapter.split(r'(')[0] strChapter = strChapter.replace('正文 ','') + '\n' numChapter = numChapter + 1 strID = '#' + str(numChapter) + '-' strChapter = strID + strChapter strChapter = strChapter + '\n------------------------------\n' + url + '\n------------------------------\n' #小说正文 strNovel = textSoup.find(id='content').getText() strNovel = strNovel.replace(' ','\n') #除去正文中多余的第XXX章 strMatch = r"第[\u4e00-\u9fa5]+章" list2replace = re.findall(strMatch, strNovel) if list2replace: str2replace = list2replace[0] strNovel = strNovel.replace(str2replace, '') #合并章节和正文 strNovel = strChapter + strNovel + '\n------------------------------\n------------------------------\n' #写到txt文件中 write2TXT(strNovel) #获取下一个章节的URL nextURL = re.findall(r'var next_page = "[\w]+.html"', allHtml)[0] nextURL = nextURL.replace(r'"', '') nextURL = nextURL.replace(r'var next_page = ', '') nextURL = headURL + nextURL print(numChapter)#章节数 print(strChapter)#章节名字 print((nextURL))#下一章URL if(endURL == nextURL): isEnd = True return nextURL,isEnd
#写到文本文件中 def write2TXT(txt): global NOVERL f = open(NOVERL, 'a', encoding='utf-8') f.write(txt + '\n\n') f.close()
三个说明:
以上就是本文关于Python下载网络小说实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
本文向大家介绍python3 下载网络图片代码实例,包括了python3 下载网络图片代码实例的使用技巧和注意事项,需要的朋友参考一下 说明:这里仅展示在已经获取图片链接后的下载方式,对于爬虫获取链接部分参考前面的文章 1、利用文件读写的方式下载图片 2、urlretrieve()方法 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
主要内容:案例简单分析,编写爬虫程序本节通过具体的爬虫程序,演示 BS4 解析库的实际应用。爬虫程序目标:下载诗词名句网( https://www.shicimingju.com/book/)《 两晋演义》小说。 关于分析网页分过程,这里不再做详细介绍了,只要通读了前面的文章,那么关于如何分析网页,此时您应该了然于胸了。其实,无论您爬取什么类型的网站,分析过程总是相似的。 案例简单分析 首先判网站属于静态网站,因此您的主要任务是分析
本文向大家介绍python网络编程之文件下载实例分析,包括了python网络编程之文件下载实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python网络编程之文件下载实现方法。分享给大家供大家参考。具体如下: 真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单。 1、相应模块 ftplib模块定义了FTP类和一些方法,用以进行客户端的ftp编
介绍 网络问题中,性能问题是最复杂的问题之一,解决这样的问题能够透彻的了解整个网络的结构。但通过合适的吞吐量和数据流测试工具,能够帮你快速找到问题所在。本文承接上文,阐述netperf和netstat的用法。 更多信息 吞吐量测量: (承接上文) netperf 该程序是由HP创造,该程序免费可用,运行于一些Unix平台,有支持文档,也被移植到Windows平台。虽然不像ttcp那样无处不在,但它
本文向大家介绍Python爬取365好书中小说代码实例,包括了Python爬取365好书中小说代码实例的使用技巧和注意事项,需要的朋友参考一下 需要转载的小伙伴转载后请注明转载的地址 需要用到的库 from bs4 import BeautifulSoup import requests import time 365好书链接:http://www.365haoshu.com/ 爬取《我以月夜寄相
本文向大家介绍C#限速下载网络文件的方法实例,包括了C#限速下载网络文件的方法实例的使用技巧和注意事项,需要的朋友参考一下 C#限速下载网络文件的方法,具体如下: 测试截图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。