废话不多说直接上demo.
import requests
from lxml import etree
from openpyxl import load_workbook
def gainPron():
file = 'C:\\Users\\123\\Desktop\\wordslist.xlsx'
workbook = load_workbook(file) # 导入excel表格
worksheet = workbook['Sheet1'] # 读取excel中的sheet1这张表
row_index = 2
for row in worksheet.iter_rows(min_row=2,max_col=3):#以行迭代(最小第二行,最多第3列)
word = row[0].value
url = 'https://www.youdao.com/w/eng/{}'.format(word)
try:
data = requests.get(url).text
html = etree.HTML(data)
British_pron = html.xpath('//*[@id="phrsListTab"]/h2/div/span[1]/span/text()')[0]
American_pron = html.xpath('//*[@id="phrsListTab"]/h2/div/span[2]/span/text()')[0]
print(British_pron, American_pron)
worksheet.cell(row = row_index, column=2).value = British_pron
worksheet.cell(row = row_index, column=3).value = American_pron
except Exception as e:
print(e, word)
row_index += 1
workbook.save(file)
if __name__ == '__main__':
gainPron()
Excel的格式
注意事项
1. excel中的单词不要拼错,拼错会显示 index out of range
2. 由于一个excel是可以有多个表的,所以分清workbook和worksheet的关系.