利用 Python 開發(fā)桌面小工具艇棕,實(shí)現(xiàn)htm自動(dòng)轉(zhuǎn)為excel文件

寫在前面:最近遇到的需求是這樣的沼琉,需要頻繁將htm類型的數(shù)據(jù)轉(zhuǎn)為Excel表格,這是一個(gè)重復(fù)性的工作友鼻,極大程度上浪費(fèi)時(shí)間和人力闺骚,所以我找到了一個(gè)解決方案僻爽。用Python開發(fā)一個(gè)桌面的自動(dòng)化的小工具,雖然實(shí)現(xiàn)起來(lái)簡(jiǎn)單敦捧,但是真心好用兢卵。今天特意寫篇文章分享給大家绪颖。希望你從獲得的是這個(gè)思路菠发,里面的功能你可以換成你工作中重復(fù)的工作。

一雁乡、首先 htm 數(shù)據(jù)是如下這樣的踱稍,一個(gè)網(wǎng)址。內(nèi)容在網(wǎng)頁(yè)中扩淀,這里需要寫爬蟲驻谆,獲取網(wǎng)頁(yè)中的信息庆聘,自動(dòng)保存到excel 伙判,并輸出excel格式的文件

1、需求結(jié)果
2、解析htm里的內(nèi)容冠绢,并保存到excel
from bs4 import BeautifulSoup
import pandas as pd


class htmToExcel(object):
    def __init__(self, file_name, file_path):
        self.file_name = file_name
        self.file_path = file_path

    def htm_to_excel(self):
        print(self.file_path)
        soup = BeautifulSoup(open(self.file_path), features='html.parser')
        table = soup.find("table")
        tr_list = table.find_all("tr")
        th = tr_list.pop(0)
        title = th.find_all("th")
        lis = []
        for tr in tr_list:
            data = {}
            td = tr.find_all("td")
            for i in range(len(td)):
                data[title[i].text] = td[i].text
            lis.append(data)
        df = pd.DataFrame(lis)
        df.to_excel('{}.xlsx'.format(str(self.file_name).split('.')[0]), index=False)
        return '轉(zhuǎn)換成功唐全!'


if __name__ == '__main__':
    file_name = input("請(qǐng)輸入文件名字:")
    path = 'C:/Users/cherich/Desktop/' + file_name
    pross = htmToExcel(file_name, path)
    print(pross.htm_to_excel())

二、創(chuàng)建桌面窗口弥雹,這里使用tkinter剪勿,它是Python 自帶的gui庫(kù)厕吉,安裝后即可使用

1、安裝命令:
pip install tkinter
2运悲、利用tkinter完成可視化窗口上傳文件功能:
from tkinter import Tk, Entry, Button, mainloop
import tkinter.filedialog
import htm_to_excel
from tkinter import messagebox


def Upload():
    try:
        selectFileName = tkinter.filedialog.askopenfilename(title='選擇文件')
        pross = htm_to_excel.htmToExcel(str(selectFileName).split('/')[-1], selectFileName)
        pross.htm_to_excel()
        messagebox.showinfo('Info', '轉(zhuǎn)換成功班眯!')
        root.destroy()
    except Exception as e:
        print(e)
        messagebox.showinfo('Info', '轉(zhuǎn)換失敗宠能!')


root = Tk()
root.title('HTM轉(zhuǎn)Excel小工具')
root.geometry('+500+300')

e1 = Entry(root, width=50)
e1.grid(row=0, column=0)
btn1 = Button(root, text=' 上傳 ', command=Upload).grid(row=1, column=0, pady=5)
mainloop()

三违崇、程序打包為exe可執(zhí)行文件

本功能打包成exe的好處是不需要將代碼部署到服務(wù)器亦歉,直接將打包好的exe發(fā)給對(duì)方畅哑,就能直接使用荠呐。對(duì)于這種小而輕的功能非常友好。

1呵恢、安裝命令:
pip install pyinstaller
2媚创、 打開DOS窗口并切換到demo.py文件所在的目錄钞钙,注意路徑中不要有中文:



在當(dāng)前的目錄下,將會(huì)生成兩個(gè)文件夾:build和dist。dist里面就是所有可執(zhí)行exe文件本刽,發(fā)送快捷方式到桌面子寓,點(diǎn)擊demo.exe就能運(yùn)行了。

3炸裆、pyinstaller指令的常見可選參數(shù):
-i 給應(yīng)用程序添加圖標(biāo)
-F 指定打包后只生成一個(gè)exe格式的文件
-D –onedir 創(chuàng)建一個(gè)目錄晒衩,包含exe文件,但會(huì)依賴很多文件(默認(rèn)選項(xiàng))
-c –console, –nowindowed 使用控制臺(tái)贝奇,無(wú)界面(默認(rèn))
-w –windowed, –noconsole 使用窗口掉瞳,無(wú)控制臺(tái)
-p 添加搜索路徑
4浪漠、不要踩的坑

如果生成exe之后址愿,你發(fā)現(xiàn)你的程序異常的慢,請(qǐng)檢查你的導(dǎo)包代碼损合,盡量不要出現(xiàn) from ··· import * 嫁审,否則每次啟動(dòng)程序赖晶,都會(huì)導(dǎo)入大量函數(shù)占用大量時(shí)間遏插,親測(cè)有效。

今天的文章寫到這里分瘾,如果你覺(jué)得有用,歡迎點(diǎn)贊哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市上岗,隨后出現(xiàn)的幾起案子肴掷,更是在濱河造成了極大的恐慌背传,老刑警劉巖径玖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梳星,死亡現(xiàn)場(chǎng)離奇詭異冤灾,居然都是意外死亡辕近,警方通過(guò)查閱死者的電腦和手機(jī)移宅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門吞杭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人绢掰,你說(shuō)我怎么就攤上這事滴劲」烁矗” “怎么了芯砸?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵假丧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我渔期,道長(zhǎng)疯趟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己逃糟,他們只是感情好蓬豁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布取募。 她就那樣靜靜地躺著蟆技,像睡著了一般质礼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砰粹,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天碱璃,我揣著相機(jī)與錄音厘贼,去河邊找鬼圣拄。 笑死庇谆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的串述。 我是一名探鬼主播纲酗,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼觅赊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吮螺!你這毒婦竟也來(lái)了帕翻?” 一聲冷哼從身側(cè)響起嘀掸,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤睬塌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后梨与,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粥鞋,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呻粹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摹蘑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撒踪,死狀恐怖过咬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情制妄,我是刑警寧澤掸绞,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站耕捞,受9級(jí)特大地震影響衔掸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俺抽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一具篇、第九天 我趴在偏房一處隱蔽的房頂上張望凌埂。 院中可真熱鬧驱显,春花似錦、人聲如沸瞳抓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)孩哑。三九已至栓霜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間横蜒,已是汗流浹背胳蛮。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丛晌,地道東北人仅炊。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像澎蛛,于是被迫代替她去往敵國(guó)和親抚垄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容