当前位置: 首页 > wzjs >正文

站内营销推广方式网站推广模式

站内营销推广方式,网站推广模式,郑州网站建设up188,深圳科技有限公司 网站建设一款基于Python的从常规文档里提取图片的简单工具开发方案 1. 环境准备 安装必需库 pip install python-docx PyMuPDF openpyxl beautifulsoup4 pillow pip install pdfplumber # PDF解析备用方案 pip install tk # Python自带,无需安装工具选择 开发环…

一款基于Python的从常规文档里提取图片的简单工具开发方案


在这里插入图片描述

1. 环境准备

安装必需库

pip install python-docx PyMuPDF openpyxl beautifulsoup4 pillow
pip install pdfplumber  # PDF解析备用方案
pip install tk          # Python自带,无需安装

工具选择

  • 开发环境:VSCode + Python插件
  • 调试工具:Python IDLE(初学者友好)
  • 打包工具:pyinstaller(可选,用于生成exe)

2. 项目架构设计

image-extractor/
├── main.py            # 主程序入口
├── core/
│   ├── docx_extractor.py
│   ├── pdf_extractor.py
│   ├── excel_extractor.py
│   └── html_extractor.py
└── outputs/           # 默认输出目录

3. 核心功能实现

(1) Word文档提取 (docx_extractor.py)

import zipfile
import os
from PIL import Imagedef extract_docx_images(file_path, output_dir):# 解压docx文件with zipfile.ZipFile(file_path, 'r') as zip_ref:# 提取media文件夹内的图片image_files = [f for f in zip_ref.namelist() if f.startswith('word/media/')]for img_file in image_files:# 保存图片到输出目录zip_ref.extract(img_file, output_dir)# 重命名文件src = os.path.join(output_dir, img_file)dst = os.path.join(output_dir, os.path.basename(img_file))os.rename(src, dst)return len(image_files)

(2) PDF文件提取 (pdf_extractor.py)

import fitz  # PyMuPDF
import osdef extract_pdf_images(file_path, output_dir):doc = fitz.open(file_path)img_count = 0for page_num in range(len(doc)):page = doc.load_page(page_num)images = page.get_images(full=True)for img_index, img in enumerate(images):xref = img[0]base_image = doc.extract_image(xref)img_data = base_image["image"]# 保存为PNGimg_path = os.path.join(output_dir, f"pdf_page{page_num}_img{img_index}.png")with open(img_path, "wb") as f:f.write(img_data)img_count += 1return img_count

(3) Excel文件提取 (excel_extractor.py)

from openpyxl import load_workbook
import osdef extract_excel_images(file_path, output_dir):wb = load_workbook(file_path)img_count = 0for sheet in wb.worksheets:for image in sheet._images:# 获取图片数据img = image._dataimg_path = os.path.join(output_dir, f"excel_{sheet.title}_img{img_count}.png")with open(img_path, "wb") as f:f.write(img)img_count += 1return img_count

(4) HTML文件提取 (html_extractor.py)

import requests
from bs4 import BeautifulSoup
import os
import base64def extract_html_images(html_path, output_dir):if html_path.startswith('http'):response = requests.get(html_path)soup = BeautifulSoup(response.text, 'html.parser')else:with open(html_path, 'r') as f:soup = BeautifulSoup(f.read(), 'html.parser')img_tags = soup.find_all('img')img_count = 0for img in img_tags:src = img.get('src')if src.startswith('data:image'):# 处理base64编码图片header, data = src.split(',', 1)img_format = header.split('/')[1].split(';')[0]img_data = base64.b64decode(data)img_path = os.path.join(output_dir, f"html_img{img_count}.{img_format}")with open(img_path, 'wb') as f:f.write(img_data)img_count += 1return img_count

4. 交互界面开发 (main.py)

import tkinter as tk
from tkinter import filedialog, messagebox
from core import docx_extractor, pdf_extractor, excel_extractor, html_extractor
import osclass ImageExtractorApp:def __init__(self, root):self.root = rootself.root.title("多格式图片提取工具")# 文件路径变量self.file_path = tk.StringVar()self.output_dir = tk.StringVar(value="outputs")# 创建界面组件self.create_widgets()def create_widgets(self):# 文件选择tk.Label(self.root, text="选择文件:").grid(row=0, column=0, padx=5, pady=5)tk.Entry(self.root, textvariable=self.file_path, width=40).grid(row=0, column=1)tk.Button(self.root, text="浏览", command=self.select_file).grid(row=0, column=2)# 输出目录tk.Label(self.root, text="输出目录:").grid(row=1, column=0)tk.Entry(self.root, textvariable=self.output_dir, width=40).grid(row=1, column=1)tk.Button(self.root, text="选择目录", command=self.select_output_dir).grid(row=1, column=2)# 执行按钮tk.Button(self.root, text="开始提取", command=self.start_extraction).grid(row=2, column=1, pady=10)# 日志区域self.log_text = tk.Text(self.root, height=10, width=50)self.log_text.grid(row=3, column=0, columnspan=3)def select_file(self):file_types = [('支持的文件类型', '*.docx *.pdf *.xlsx *.html'),('Word文档', '*.docx'),('PDF文件', '*.pdf'),('Excel文件', '*.xlsx'),('网页文件', '*.html')]self.file_path.set(filedialog.askopenfilename(filetypes=file_types))def select_output_dir(self):self.output_dir.set(filedialog.askdirectory())def start_extraction(self):file_path = self.file_path.get()output_dir = self.output_dir.get()if not os.path.exists(output_dir):os.makedirs(output_dir)ext = os.path.splitext(file_path)[1].lower()try:if ext == '.docx':count = docx_extractor.extract_docx_images(file_path, output_dir)elif ext == '.pdf':count = pdf_extractor.extract_pdf_images(file_path, output_dir)elif ext == '.xlsx':count = excel_extractor.extract_excel_images(file_path, output_dir)elif ext == '.html':count = html_extractor.extract_html_images(file_path, output_dir)else:messagebox.showerror("错误", "不支持的文件类型")returnself.log_text.insert(tk.END, f"成功提取 {count} 张图片到 {output_dir}\n")except Exception as e:messagebox.showerror("错误", f"提取失败: {str(e)}")if __name__ == "__main__":root = tk.Tk()app = ImageExtractorApp(root)root.mainloop()

5. 使用说明

操作步骤

  1. 运行 main.py
  2. 点击 浏览 选择文件 (支持.docx/.pdf/.xlsx/.html)
  3. 选择输出目录(默认 outputs)
  4. 点击 开始提取
  5. 查看底部日志区域的提取结果

效果示例

成功提取 5 张图片到 outputs/
成功提取 3 张图片到 outputs/

6. 常见问题解决

Q1: Excel图片无法提取?

  • 原因:openpyxl只能提取嵌入式图片,无法提取浮动图片
  • 解决方案:改用xlrd+图像坐标识别(需更复杂处理)

Q2: PDF提取的图片模糊?

  • 原因:PDF内嵌低分辨率图片
  • 解决方案:使用pdfplumber的更高精度提取模式

Q3: 程序无响应?

  • 原因:大文件处理耗时阻塞主线程
  • 解决方案:改用多线程处理(参考threading模块)

7. 项目扩展建议

  1. 增加批量处理:支持文件夹批量导入
  2. 添加图片预览:在界面中显示缩略图
  3. 支持压缩包:直接解压ZIP/RAR文件并处理内容
  4. 增加格式转换:自动转换HEIC/WEBP等特殊格式

http://www.dtcms.com/wzjs/63207.html

相关文章:

  • 网站首页做跳转什么是关键词搜索
  • 个人站长做哪些网站好做外贸网站哪家公司好
  • 有哪个网站教人做美食百度网盘客户端下载
  • 自助建站系统厂家互联网推广引流
  • 美国新冠肺炎疫情最新情况快速提升排名seo
  • 试用网站 建站包头整站优化
  • 住房和城乡建设部网站八大员企业营销策划及推广
  • 珠海网站建设哪家公司好2022年十大网络流行语发布
  • 手机网站关闭窗口代码软件定制开发公司
  • 用dw制作视频网站武汉百度seo网站优化
  • 郑州外贸网站建设商家网页优化怎么做
  • 深圳知名网站建设价格网站制作建设公司
  • 帮人做网站要怎么赚钱吗广东疫情最新消息今天又封了
  • 日本人真人做真爱免费的网站百度网站的网址是什么
  • 做网站申请域名空间百度账号登陆
  • 博客可以放自己做的网站营销伎巧第一季
  • 用网站模板给人做网站挣钱吗百度推送
  • 做网站需要准备的东西培训课程开发
  • 软文自助发稿软件开发 网站建设网络营销推广工具
  • 常营网站建设公司2024北京又开始核酸了吗今天
  • 百度免费建立网站营销软文是什么
  • 济南网站建设公司熊掌号关键词优化公司靠谱推荐
  • 慢慢来做网站多少钱网站广告制作
  • 青岛网站建设价格seo推广怎么入门
  • 建公司网站要多久口碑营销的案例
  • 沈阳唐朝网站建设网络营销策划方案书范文
  • 免费html网页模板网站企业网站推广的一般策略
  • 江西网站建设与推广怎么建立自己的企业网站
  • wordpress 页面美化seo网站课程
  • 厦门北京网站建设指数基金怎么买