博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python实战】爬取起点中文网自制小说阅读器
阅读量:4108 次
发布时间:2019-05-25

本文共 1983 字,大约阅读时间需要 6 分钟。

哈喽,大家好,我是一条。

相信有很多爱看小说的朋友,一定也有很多爱听小说的朋友。

今天就教大家先爬取起点中文网,再自制小说阅读器。

起点中文网爬虫

一条从初中开始看小说,那时3G刚普及,wifi更没有现在这么常见,所以都是把小说下载下来看,所以找一个免费的下载源就尤为重要。

直到接触到爬虫,简直太爽了!

1.涉及知识点

  • requests请求
  • 利用lxml进行xpath解析
  • python文件操作

2.实现步骤

url

百度搜索起点中文网,得到所有小说的url:https://www.qidian.com/all

解析网页

通过开发者工具,分析小说名字的xpath路径

写入文件

3.代码实现

import requestsimport osfrom lxml import etreeurl="https://www.qidian.com/all"rep=requests.get(url)html=etree.HTML(rep.text)name=html.xpath('//div[@class="book-mid-info"]/h4/a/text()')src=html.xpath("//div[@class='book-mid-info']/h4/a/@href")#拉链for i,j in zip(name,src):    if os.path.exists(i)==False:        os.mkdir(i)    rep1=requests.get("http:"+j+"#Catalog")    html1=etree.HTML(rep1.text)    zhname=html1.xpath('//ul[@class="cf"]/li/a/text()')    zhsrc=html1.xpath('//ul[@class="cf"]/li/a/@href')    for zi,zj in zip(zhname,zhsrc):        print(zi,zj)        zhreq=requests.get("http:"+zj)        zhhtml=etree.HTML(zhreq.text)        consrc="\n".join(zhhtml.xpath('//div[@class="read-content j_readContent"]/p/text()'))        filename=i+"\\"+zi+".txt"        print(filename)        with open(filename,"a",encoding="utf-8") as f:            f.write(consrc)

4.效果展示

自制小说阅读器

1.涉及知识点

  • 百度人工智能API
  • python打包

2.实现步骤

从文件或键盘获取文本

利用百度API将文字合成语音

3.代码实现

from aip import AipSpeechdef reader():    app_id="your app_id"    api_key="api_key"    secret_key="secret_key"    client=AipSpeech(app_id,api_key,secret_key)    print("请输入数字选择声音 0:女 1:男  3:逍遥  4:萝莉,按回车键结束")    num=input()    print("请输入中文,按回车结束")    strr="大奉京兆府,监牢。许七安幽幽醒来,嗅到了空气中潮湿的腐臭味,令人轻微的不适,胃酸翻涌。这扑面而来的臭味是怎么回事,家里的二哈又跑床上拉屎来了....根据熏人程度,怕不是在我头顶拉的....许七安家里养了一条狗,品种哈士奇,俗称二哈。"    result=client.synthesis(strr,"zh",1,{
'vol': 5, #音量 'spd': 5, #语速 'pit': 9, #语调 'per': int(num), #音色 #0:女 1:男 3:逍遥 4:萝莉 }) with open("./audio.wav","wb") as f: f.write(result)if __name__ == '__main__': reader()

4.效果展示


我是一条,一个在互联网摸爬滚打的程序员。

道阻且长,行则将至。大家的 【点赞,收藏,关注】 就是一条创作的最大动力,我们下期见!

注:关于本篇博客有任何问题和建议,欢迎大家留言!

转载地址:http://ibvsi.baihongyu.com/

你可能感兴趣的文章
Node.js开发笔记Windows篇(二)安装Express
查看>>
[LOJ 6213]「美团 CodeM 决赛」radar
查看>>
解决gridview row 左边序列号 显示不完全的技巧
查看>>
solr和es的区别
查看>>
css中的相对定位和绝对定位
查看>>
Bodymovin:Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
查看>>
Tomcat7启动报Error listenerStart错误
查看>>
spring源码学习之springMVC(二)
查看>>
ChannelPipeline
查看>>
Go语言备忘录(2):反射的原理与使用详解
查看>>
公有属性 公有方法(原型方法) 私有属性 私有方法 特权方法 静态属性 静态方法 对象字面量创建...
查看>>
spring(一) IOC讲解
查看>>
SpringBoot+WebSocket
查看>>
基本数据类型,string类型的瞎扯,final喜欢干的事儿。final string
查看>>
PAT乙级1011
查看>>
常用网络技术
查看>>
AlertDialog.Builder提示对话框
查看>>
Fedora安装ns2.34需要的一些依赖包
查看>>
Python基础4
查看>>
http://my.oschina.net/chihz/blog/56256
查看>>