美文网首页
笔趣阁小说电子书生成办法

笔趣阁小说电子书生成办法

作者: 守望者3210 | 来源:发表于2019-02-28 09:46 被阅读0次

    为什么要写这个脚本

    1.收费
    2.广告
    只是想干干净净的看小说而已

    步骤

    1.使用下边的脚本,下载小说,保存成xxx.html
    2.使用calibre工具,生成电子书。记得在生成电子书时,目录结构->一级目录,填写//h:h4 ,这样生成的电子书就带有目录了。
    3.好了,可以美美看纯净版小说了

    脚本内容

    #!/usr/bin/python3
    #-*-coding:utf-8-*-
    #biquge小说下载
    import re
    import urllib.request
    import ssl
    from pyquery import PyQuery as pq
    import time 
    
    def getHtml(url):
        page = urllib.request.urlopen(url)
        html = page.read()
        html = html.decode('utf-8')
        return html
    #下载列表
    def getArticleList(listurl,contenturl_prefix):
        html=getHtml(listurl)
        doc = pq(html)
        ret=[]
        for a in doc("div#list dd a").items():
            href=contenturl_prefix+a.attr("href")
            title=a.text()
            ret.append((href,title))
        return ret
    #下载内容
    def getArticle(contenturl):
        html=getHtml(contenturl)
        doc = pq(html)
        return doc("div#content").html()
    
    #
    if __name__ == "__main__":
        article_list_url,article_url_prefix=("https://www.biquge.info/1_1760/","https://www.biquge.info/1_1760/")
        article_iterms = getArticleList(article_list_url,article_url_prefix)
        save2file = "/Users/myname/Downloads/xiaoshuo.html" 
        with open(save2file,'w',encoding="utf-8") as f:
            f.write("<html><body>")
            for art in article_iterms:
                content = getArticle(art[0])
                f.write("<h4>"+art[1]+"</h4>")
                f.write(content)
                print(art[1])
                time.sleep(1)
            f.write("<html><body>")
    

    其实也就是个最简单的爬虫脚本,
    稍作修改也适应其他小说网站。

    加强版本,支持大本书切割

    #!/usr/bin/python3
    #-*-coding:utf-8-*-
    #biquge小说下载
    import re
    import urllib.request
    import ssl
    from pyquery import PyQuery as pq
    import time 
    import sys
    
    def getHtml(url):
        page = urllib.request.urlopen(url)
        html = page.read()
        html = html.decode('utf-8')
        return html
    
    #下载列表
    def getArticleList(listurl,contenturl_prefix):
        html=getHtml(listurl)
        doc = pq(html)
        ret=[]
        for a in doc("div#list dd a").items():
            href=contenturl_prefix+a.attr("href")
            title=a.text()
            ret.append((href,title))
        return ret
    
    #下载内容
    def getArticle(contenturl):
        html=getHtml(contenturl)
        doc = pq(html)
        return doc("div#content").html()
    
    #清洗    
    def clearArticle(content):
        #TODO 清洗,自己实现,可以用正则、字符串替换的方式清理
        return content.replace("龗","")
    
    #支持分割功能
    if __name__ == "__main__":
        article_list_url,article_url_prefix=("https://www.biquge.info/1_1760/","https://www.biquge.info/1_1760/")
        article_iterms = getArticleList(article_list_url,article_url_prefix)
        save2file = "/Users/myname/Downloads/xiaoshuo_{0:0>4d}.html" 
        single_book_size = 100 #1本书最多有多少章节,避免一本书过大,转换失败
        fo = None
        index=0
        book_no=1
        for art in article_iterms:
            print(art[1])
            if index%single_book_size==0:
                if fo!=None:
                    fo.write("</body></html>")
                    fo.close()
                    fo=None
                    book_no=book_no+1
                fo=open(save2file.format(book_no),'w',encoding="utf-8")
                fo.write("<html><body>")
            content = clearArticle(getArticle(art[0]))
            fo.write("<h4>"+art[1]+"</h4>")
            fo.write(content)
            time.sleep(1)#下载1篇后,休息1秒钟,做一个有道德的爬虫
            index=index+1
        if index%single_book_size!=0:
            fo.write("</body></html>")
            fo.close()
    

    相关文章

      网友评论

          本文标题:笔趣阁小说电子书生成办法

          本文链接:https://www.haomeiwen.com/subject/aowcuqtx.html