#让excel朗读英文单词本
import xlrd
from bs4 import BeautifulSoup #最主要的功能是从网页抓取数据
import requests #requests是python实现的最简单易用的HTTP库,建议爬虫使用requests 获取某个网页 各种请求
import time
import xlsxwriter as wx
import win32com.client #带有朗读的功能
#1.打开工作表的第一列
xlsx = xlrd.open_workbook(r’C:\Users\Polyxena\Desktop\test\word_test.xlsx’)
table = xlsx.sheets()[0]
#2.新建一个工作表存储新的数据,存储翻译过的单词
dst_wb = wx.Workbook(‘words_trans.xlsx’)
worksheet = dst_wb.add_worksheet()
#3.遍历 第一列的单词
for row in range(0,table.nrows):
#time.sleep(1)
word = table.cell(row,0).value
#3.1 用爬虫获取对于某个单词的翻译
url = ‘http://www.youdao.com/w/eng/’ + word
#3.2 Requests是用Python语言编写的,基于urllib3来改写的,一句话—Python实现的简单易用的HTTP库。一般有get和post两种方法
web_data = requests.get(url).text
#3.3 用beautifulSoup 解析网址
soup = BeautifulSoup(web_data, ‘lxml’)
#3.4 这里面某一个位置是我们需要的翻译
meaning = str(soup.select(’#phrsListTab > div.trans-container > ul > li’)).replace(’
translation = meaning[1:-1]
print(word)
#3.4 翻译保存下来,放在单元格里面
worksheet.write(row, 0, word)
worksheet.write(row, 1, translation)
dst_wb.close()
#win32这个库自带朗读功能
speaker = win32com.client.Dispatch(‘SAPI.SpVoice’)
xlsx = xlrd.open_workbook(r’words_trans.xlsx’)
#定位在表的第一列
table = xlsx.sheets()[0]
for row in range(0, table.nrows):
#time.sleep(1)
word = table.cell(row, 0).value
word_segment = []
for i in word:
word_segment.append(i)
word_segment.append(’-’)
word_2 = ‘’.join(word_segment)
speaker.Speak(str(table.cell(row, 0).value))
speaker.Speak(str(word_2))
speaker.Speak(str(table.cell(row, 0).value))
speaker.Speak(str(table.cell(row, 1).value))
workbook.save(filename=‘words_trans.xlsx’)