当前位置: 移动技术网 > IT编程>脚本编程>Python > 爬取编程常用词汇,保存为Excel

爬取编程常用词汇,保存为Excel

2019年12月05日  | 移动技术网IT编程  | 我要评论

在职医学硕士,寻找阿依阔勒,mp3视频

编程常用词汇

import requests
import openpyxl
from lxml import etree
import re

url = 'https://www.runoob.com/w3cnote/common-english-terminology-in-programming.html'

#   得到响应结果
res = requests.get(url)
#   xpath取值
selector = etree.html(res.text)
#   字母的索引
word_letter = selector.xpath('//h2/text()')
#   删除列表里前两个多余的值
del word_letter[0:2]
# print(word_letter)
#   word_letter 最后的值为
#   ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '专业名词']

#   得到每个索引的table,每个table里包含各索引的所有单词
result = selector.xpath('//table')
#   删除多余的数据
result.pop(0)

#   创建workbook
wb = openpyxl.workbook()
#   创建worksheet
ws = wb.active

#   利用下标取出词汇的索引
index = -1
for table in result:
    #   一开始就进行计数,即从0开始
    index += 1
    #   先添加索引,再取出每个table里的所有单词
    ws.append([word_letter[index]])
    #   打印索引
    print(word_letter[index])

    #   x索引里没有单词
    if word_letter[index] == 'x':
        #   每个字母索引之间空一行
        ws.append([])
        #   继续循环对后面table里的单词进行添加
        continue

    #   添加一行excel数据
    ws.append(['英文', '译法 1', '译法 2', '译法 3'])
    #   将element类型显示为字符,为byte类型,需要decode
    #   中文不显示,需要设置 encoding='utf-8'
    words_html = etree.tostring(table, encoding='utf-8').decode()

    #   一个tr:单词和译法
    #   利用正则得到一个table里所有tr的内容
    word_html = re.findall('<tr>.*?</tr>', words_html, re.s)
    #   删除带<strong>标签的'英文 译法1 译法2 译法3'这条数据
    #   前面已经手动添加,后面不需要每条都去判断去除<strong>标签
    word_html.pop(0)
    for tr in word_html:
        #   一个td:一个单词或一个译法
        #   利用正则得到一个tr里所有td的内容
        #   得到的为list,一个td_list里面包含一个单词和对应的译文(含空格)
        td_list = re.findall('<td>(.*?)</td>', tr, re.s)
        #   用新的列表接收去除空格后的单词和译文
        word = []
        for i in td_list:
            #   去除每个td里包含的空格,添加为一个列表
            word.append(i.strip())
        #   打印单词
        print(word)
        #   一个word包含一个单词和对应的译文(不含空格)
        #   将这个单词添加进excel
        ws.append(word)
    #   每个字母索引之间空一行
    ws.append([])

#   保存excel
path = r'c:\users\hlzy\desktop\编程常用词汇.xlsx'
wb.save(path)

#   没有设置单元格样式,可以直接打开excel,设置边宽,全选居中


控制台打印



excel内容




如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网