基于pyttsx3、requests的小说自动播放器

目录

​​​​​​​前言

二、设计思路

三、使用步骤

1.引入库

2.User-Agent代理池:

3.核心代码片段

总结


前言

        啊啊啊啊啊啊啊,小说好好看,但又非常费眼睛,想听,网上搜搜搜一大堆播放器,随机选一个,艾玛,白嫖党伸手被啪啪啪打的手掌通红。试读前几章吧,大量广告算了!!!还要交出为数不多的软妹币开月vip,好蛋疼。那有什么其他方法吗,绞尽脑汁想了个方法,用爬虫搭载pyttsx3播放器,一边爬一边播(当然,这里的话先普及一下,使用pyttsx3注册播放工程时,相当于给当前线程挂了个sleep(),只有读完,才会爬取下一条,非常人性化。)


一、准备工具

        Jupyter、pyttsx3

        不出意外,现在点击进来的小伙伴们都有python基础,白嫖党当我没说,应该都有自己的开发平台,本文Code只要有安装pyttsx3拓展包,即可开始使用。

        安装方法:pip install pyttsx3

        有问题的话可下放留言或私信,也可自行百度sougo一下,相信解决难度不大。

二、设计思路

        敲黑板!!!重点来了,设计最需要的是思路,了解这个思路,你也可以做到举一反三,做其他有意思的事。
        当初学习爬虫,爬小说,然后疯狂阅读,艾玛,眼睛不行了,去听小说吧,可惜资源没有,vip、广告一大堆,哇,我们有pyttsx3这个播放器耶(^-^)V,但是内容怎么来呢,ε=(*ο*`)))欸!我可以使用爬虫,爬取到源码后使用xpath或者re正则表达式提取小说信息,然后把内容加载给pyttsx3播放器,不就完美解决了吗?话不多说,赶紧行动!!!

三、使用步骤

1.引入库

代码如下:

import re    #这里使用re正则提取小说信息
import random  #用做User-Agent池的随机获取
import requests
import threading   #挂线程使用,不过目前没用到,后续更新补充
import pyttsx3    #今天的MVP主角

2.User-Agent代理池:

        爬虫必备,以防ip被封,不过目前播放器作用不大,本来就类似一个人在那里老老实实从头看到尾,不过以防万一,还是加上吧,亦可做其他的用途。

"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
        "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
        "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
        "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
        "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
        "Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)",
        "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"

3.核心代码片段

        爬虫嘛,我相信小伙伴都有能力独自爬取一个界面,有能力一点的,使用表达式,提取相关信息,应该问题不大,以下代码仅做参考,另外,我想说,笔趣阁不愧是一个最棒最人性化的小说网站,白嫖党的福利!!!!咳咳。。寒暄结束,上代码:

enginer=pyttsx3.init()                    #注意这里很重要,首先要初始化一个播放器工程实例
#爬取并解析网站都会吧
resp=requests.get(url)
res=requests.get(url,headers=headers)
urls=re.findall('
第',res.text) titles=re.findall('html">第(.*?)<',res.text) for i in range(len(urls)): urls[i]="http://www.cits0871.com"+urls[i] #url拼接现场 for i in range(2513,len(urls)): url=urls[i] headers={ "User-Agent" : random.choice(User_Agents), #生成随机代理 "Referrer Policy": "unsafe-url" } print("正在爬取第"+str(i+1)+"页") resp1=requests.get(url,headers=headers) #开始爬取每一章的内容 context=re.findall("

(.*?)\r",resp1.text) #提取小说文章内容 for b in range(len(context)): enginer.setProperty('rate',200) #设置播放器速度 enginer.say(context[b]) #开始播放 #注意!!!!enginer.say(context[b]) 和 enginer.runAndWait() 是配套的,多对一的关系, #没有enginer.runAndWait(),就算电脑冒烟了都没法发声音 enginer.runAndWait() print("小说播放结束!")

        当然,如果需要保存小说的,可自行修改Code或者私信作者,我私信给你。


总结

        可能本人技术有限,并没有做到最好,如有更好的解决方案,欢迎下方留言讨论。

        最后,咳咳。。(ps:新人博主,疯狂点赞暗示!!!)咳咳咳。。。(ps:新人博主,疯狂点赞暗示!!!)

你可能感兴趣的:(python,开发语言)