核心功能 - 自动化阅读网页新闻

这个脚本能够实现从网页中抓取文本,然后自动化语音朗读,当你想听新闻的时候,这是个不错的选择。

代码分为两大部分,第一通过爬虫抓取网页文本呢,第二通过阅读工具来朗读文本。

需要的第三方库:

  • Beautiful Soup - 经典的HTML/XML文本解析器,用来提取爬下来的网页信息

  • requests - 好用到逆天的HTTP工具,用来向网页发送请求获取数据

  • Pyttsx3 - 将文本转换为语音,并控制速率、频率和语音

实现代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69


import pyttsx3


import requests


from bs4 import BeautifulSoup


engine = pyttsx3.init('sapi5')


voices = engine.getProperty('voices')


newVoiceRate = 130                       ## Reduce The Speech Rate


engine.setProperty('rate',newVoiceRate)


engine.setProperty('voice', voices[1].id)


def speak(audio):


  engine.say(audio)


  engine.runAndWait()


text = str(input("Paste article\n"))


res = requests.get(text)


soup = BeautifulSoup(res.text,'html.parser')


 


articles = []


for i in range(len(soup.select('.p'))):


    article = soup.select('.p')[i].getText().strip()


    articles.append(article)


text = " ".join(articles)


speak(text)


# engine.save_to_file(text, 'test.mp3') ## If you want to save the speech as a audio file


engine.runAndWait()