本文是一篇关于下载输入的帖子

上一版本链接:传送门

这是我用pyinstaller打包成的exe文件,便利体验:传送门(上传了正在审核,请稍等)

这里使用了第三方库pyquery,安装方法见:上一版本链接

在上一版本的基础上做个改良.先上图:

上面是代码:

# -*- coding:gbk -*-
'''
file desc:novel downloader
author:kingviker
email:kingviker@163.com.kingviker88@gmail.com
date:2013-05-31
depends:python 2.7.4,pyquery
'''import os,codecs,urllib,urllib2
from pyquery import PyQuery as pqsearchUrl = 'http://www.dushuge.net/modules/article/search.php'
baseSavePath="E:/enovel/"print "小说下载器 by kingviker!"
def searchNovel(novelName):values = urllib.urlencode({'searchkey' : novelName,    'searchtype' : 'articlename'})req = urllib2.Request(url=searchUrl,data=values)response = urllib2.urlopen(req)searchHtml_pq = pq(response.read())novelUrlHtml = searchHtml_pq("#content > .sf-mainbox > .head > h1 > a")#print novelUrlHtmlif not novelUrlHtml :return return (novelUrlHtml.eq(2).text(),novelUrlHtml.eq(2).attr("href"))def analyzeNovel(url):#using pyquery to grub the webpage's contenthtml_pq = pq(url=url)#print html_pq("div.book_article_texttable").find(".book_article_texttext")totalChapters = len(html_pq("div.book_article_texttable").find(".book_article_listtext").find("a"))return totalChaptersdef fetchDownloadLinks(url):#using to save pieces and chapter listspieceList=[]chapterList=[]html_pq = pq(url=url)#find the first piece of the novel.piece = html_pq("div.book_article_texttable > div").eq(0)isPiece = Trueif piece.attr("class")=="book_article_texttitle":#get the current piece's textpieceList.append(piece.text())#print "piece Text:", pieceelse:isPiece = FalsepieceList.append("无")#scan out the piece and chapter listsnextPiece=Falsewhile nextPiece==False:if isPiece:chapterDiv = piece.next()else:isPiece = TruechapterDiv = piece#print "章节div长度:",chapterDiv.lengthpiece = chapterDivif chapterDiv.length==0:pieceList.append(chapterList[:])del chapterList[:]nextPiece=Trueelif chapterDiv.attr("class")=="book_article_texttitle":pieceList.append(chapterList[:])del chapterList[:]pieceList.append(piece.text())else:chapterUrls = chapterDiv.find("a");for urlA in chapterUrls:urlList_temp = [pq(urlA).text(),pq(urlA).attr("href")]chapterList.append(urlList_temp)print "下载列表收集实现",len(pieceList)return pieceListdef downloadNovel(novel,startChapterNum):# if os.path.exists(baseSavePath+novel[0]) is not True:#    os.mkdir(baseSavePath+novel[0])#based on the piecelist,grub the special webpage's novel content and save them .if os.path.exists(baseSavePath+novel[0]+".txt"):os.remove(baseSavePath+novel[0]+".txt")#using codecs to create a file. write mode(w+) is appended.novelFile = codecs.open(baseSavePath+novel[0]+".txt","wb+","utf-8")pieceList = fetchDownloadLinks(novel[1])chapterTotal = 0;print "从",startChapterNum,"章开始下载"#just using two for loops to analyze the piecelist.for pieceNum in range(0,len(pieceList),2):piece = pieceList[pieceNum]print "开始下载篇章",pieceList[pieceNum]chapterList = pieceList[pieceNum+1]for chapterNum in range(0,len(chapterList)):chapterTotal +=1# print chapterTotal,startChapterNum,startChapterNum>chapterTotal# print type(startChapterNum),type(chapterTotal)if startChapterNum > chapterTotal:continuechapter = chapterList[chapterNum]print "开始下载章节",chapter[0]chapterPage = pq(url=novel[1]+chapter[1])chapterContent = piece+" "+chapter[0]+"\r\n"chapterContent += chapterPage("#booktext").html().replace("<br />","\r\n")print "小说内容:",len(chapterContent)novelFile.write(chapterContent+"\r\n"+"\r\n")novelFile.close()print "下载实现,文件位置:",baseSavePath+novel[0]+".txt"while(True):#if the novel's file system  not exists,created.if os.path.exists(baseSavePath) is not True:os.mkdir(baseSavePath)name = raw_input("请输入想要下载的小说名称,输入quit退出:")if name =="quit":print "bey"breaknovel = searchNovel(name)if not novel :print "没有查找到小说",name,"或者小说名称输出错误!"else:print "已找到小说:",novel[0]result = raw_input("输入yes或回车选定小说,输入no重新输入小说名称:")if not result or result=="yes":print "开始分析章节信息..."totalChapters = analyzeNovel(novel[1])print "总章节数:",totalChaptersstartChapterNum = raw_input("请输入肇端章节,全部下载请按回车:")if not startChapterNum :startChapterNum=0#print startChapterNumdownloadNovel(novel,int(startChapterNum))   elif result =="no":pass
每日一道理
今天阳光很好,坐在窗前,看窗外如此晴朗的天感觉特别舒心,雨过天晴后的世界总给人一种明媚,仿佛阳光照耀在“心田”上空,让前些天被风雨践踏的花朵重新得到爱的关怀,重现生命的活力!

这一版本重要更新如下:

1.函数封装

2,增加用户交互界面.

3,用户可自在输入小说名称查询下载

4.可选肇端下载章节

5.暂时取消单章保存模式

下一版本目标:

1.支撑模糊查询

2,增加热门小说列表

3.优化表现界面

文章结束给大家分享下程序员的一些笑话语录: N多年前,JohnHein博士的一项研究表明:Mac用户平均IQ要比PC用户低15%。超过6000多的参加者接受了测试,结果清晰的显示IQ比较低的人会倾向于使用Mac。Mac用户只答对了基础问题的75%,而PC用户却高达83%。

--------------------------------- 原创文章 By
下载和输入
---------------------------------

下载输入python之小说下载器version2.0相关推荐

  1. python 小说下载工具_下载输入python之小说下载器version2.0

    本文是一篇关于下载输入的帖子 上一版本链接:传送门 这是我用pyinstaller打包成的exe文件,便利体验:传送门(上传了正在审核,请稍等) 这里使用了第三方库pyquery,安装方法见:上一版本 ...

  2. python 小说下载工具_下载代码python之小说下载器

    时光紧张,先记一笔,后续优化与完善. 首先声明,我写这个是为了练手,我不看小说了.因为眼睛近视太厉害了,我连手机都不玩了. 小说下载器的目标是为了解决当初市面上能下载最新小说的网站是在太少了,但是在线 ...

  3. 基于python简易小说阅读器(一)

    基于python简易小说阅读器(一) 实现功能:界面显示小说内容,界面的最下方有按键实现章节切换   后台需要有小说内容的数据,针对这一块,python的爬虫模块requests可以满足项目需求,前端 ...

  4. 基于python简易小说阅读器(二)

    基于python简易小说阅读器(二)   在基于python简易小说阅读器(一)中,用requests模块和beautifulsoup模块完成了阅读器的后台,实现了下载小说内容的功能,现在用tkint ...

  5. python写小说阅读器_手把手教你用Python制作简易小说阅读器

    /前言/ 不知从什么时候开始.小说开始掀起了一股浪潮,它让我们平日里的生活不在枯燥乏味,很多我们做不到的事情在小说里都能轻易实现. 今天我们要做的就是一个小说阅读器了,一个可以将你的文章中的字每隔多少 ...

  6. Python实现小说下载器,可以打包exe

    前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...

  7. python之小说下载器version3.0

    1.0版本链接:传送门 2.0版本链接:传送门 我想了一下,每个版本打包exe 意义不大,如果是最终版什么的 打一个还行,所以暂时不打包了 有需要的可以留言,我在打包. 这里使用了第三方库pyquer ...

  8. python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁

    有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...

  9. python +pyqt 小说下载阅读器 转语音合成 ,基于PyQt5生成图形页面(已打成exe可直接下载使用)

    最近在学习python,写了一款简单的小说下载器,基本功能都已经实现,废话不多说 直接上效果 简单说下功能把 1.支持在线阅读,翻页 键盘快捷键上下(阅读) 左右(翻页).可以导出TXT到本地,默认是 ...

最新文章

  1. python可以自学吗需要什么基础-python自学行吗?给编程初学者零基础入门的建议...
  2. 干货 | extern的用法解析
  3. 互联网晚报 | 8月26日 星期四 | 小米Q2营收净利均创单季历史新高;拼多多设立“百亿农研专项”;网易云音乐正式入驻闲鱼...
  4. magento常用的语句
  5. 当个年轻的又不太有经验的老板有多难?
  6. 在线Excel转CSV工具
  7. openstack在xiandian界面登录提示无效证书_原产地证书自助打印来啦!
  8. 使用VC开发的一个简单工作日志软件
  9. c语言编程运动会分数统计系统报告,C语言课程设计报告运动会分数统计系统.pdf...
  10. python爬取公众号推荐,用python爬取公众号的方法
  11. 3K热敏电阻测温程序
  12. 使用MapReduce挖掘父子关系
  13. ubuntu shuru zhic
  14. iPad 开发技术与案例分析
  15. cacheable注解原理_@Cacheable的实现原理
  16. i5-12400和i5-12400F有什么区别 i512400和12400f哪个好
  17. 国密SM4加解密SM2签名验签COM组件DLL
  18. fasterrcnn中ROI Pooling 与 SPP 理解
  19. 信息资源管理概论--练习题
  20. php 获取当前用户的IP

热门文章

  1. LeetCode-3Sum -三数求和-有序数组扫描
  2. 诗与远方:无题(十七)
  3. Hibernate之DetachedCriteria类详解
  4. java同步方法必须是静态的吗_Java基础知识之synchronized同步方法、代码块、静态方法、静态代码块的区别...
  5. java memcmp_C 库函数
  6. mysql数据库druid密码加密_Druid数据库密码加密
  7. 20181016-10 每周例行报告
  8. cocos2d-x JS 重力感应监听事件
  9. background-origin:规定 background-position 属性相对于什么位置来定位
  10. mongo系统(1)