爬取編程常用詞匯,保存為Excel


編程常用詞匯

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內容



提取鏈接:https://pan.baidu.com/s/11kQnMQU_ilOtgf4Mom0nhw





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM