寫在前面:最近遇到的需求是這樣的沼琉,需要頻繁將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)贊哦~