需求:

excel文件中存放了很多html标签文本,需要把文本内容在浏览器中打开将内容截图,放入doc文档保存。

手动过程

需要逐条手动处理

1. 从excel表格中复制标签文本内容

<div>二项竞争性比选结果公示<br>南昌通信段<a>南昌通信段委外工程</a>2022-06-28 15:02发表于江西<br><p> 根据南昌通信段2022年6月27日关于 “莆田车间基站房屋漏水整治” 项目比选结果的审批意见,现将结果予以公布。具体如下:<br>中选单位:福建志海建设有限公司</p><p>中选情况:承诺在实际验收决算的基础上降造 12% 结算费用。<br> 如对本结果有异议的,可自本公示发布之日起三日内提出。<br> 梅旭宝 联系方式:0791-87025476<br> 曾国萍(纪检监察) 联系方式:0791-87027016</p><p><br></p><p> 根据南昌通信段2022年6月15日关于 “吉衡线K72迁改” 项目比选结果的审批意见,现将结果予以公布。具体如下:<br>中选单位:南昌精通实业有限公司</p><p>中选情况:承诺在实际验收决算的基础上降造 12.5% 结算费用。<br> 如对本结果有异议的,可自本公示发布之日起三日内提出。<br> 梅旭宝 联系方式:0791-87025476<br> 曾国萍(纪检监察) 联系方式:0791-87027016</p><p><br></p><p><br></p><p><br></p><p> 南昌通信段 </p><p> 2022 年 6 月 28 日</p></div>

2.将标签文本内容放入html文件在浏览器中打开:

3.截图放入word文档。

脚本实现

由于数据很多,且步骤重复,可以通过python脚本实现这一过程自动化。

本人没有系统的学习过python,对很多语法规范都不了解,写的一些脚本都是根据功能点在网上查的代码,然后组合成自己需要的功能,所以代码写得比较凌乱,见谅。

用到的三方包及工具:

selenium、xlrd、python-docx

webdriver地址:http://chromedriver.storage.googleapis.com/index.html

谷歌浏览器地址:谷歌浏览器Chrome最新版下载地址汇总 - 知乎

步骤拆分:

1.按行读取excel文件内容

2.将内容写入html文件

3.通过chrome驱动实现在浏览器打开html文件并滚动截图并将图片保存到本地

4.读入的excel内容按字段写入word文档中。

代码:

from selenium import webdriver
import time#导出word
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT #设置对象居中、对齐等。
from docx.enum.text import WD_TAB_ALIGNMENT,WD_TAB_LEADER #设置制表符等
from docx.shared import Inches #设置图像大小
from docx.shared import Pt #设置像素、缩进等
from docx.shared import RGBColor #设置字体颜色
from docx.shared import Length #设置宽度
from docx.oxml.ns import qn
from docx import Documentimport xlrd
#临时图片路径
img_path =  f'C:\\Users\\Administrator\\Desktop\\jietu\\1.png'
#临时html文件路径
html_path = f'C:\\Users\\Administrator\\Desktop\\jietu\\temp.html'
document=Document()#截图
def screencut():options = webdriver.ChromeOptions()options.add_argument('--disable-gpu')  # 禁用gpuoptions.add_argument('--ignore-certificate-errors') #忽略一些莫名的问题options.add_experimental_option('excludeSwitches', ['enable-automation'])  # 开启开发者模式options.add_argument('--disable-blink-features=AutomationControlled')  # 谷歌88版以上防止被检测options.add_argument('--headless')  # 无界面driver = webdriver.Chrome(options=options)  # 将chromedriver放到Python安装目录Scripts文件夹下#临时html文件路径url = f"file:///C:/Users/Administrator/Desktop/jietu/temp.html"driver.get(url)time.sleep(1)js_height = "return document.body.clientHeight"k = 1height = driver.execute_script(js_height)while True:if k * 500 < height:js_move = "window.scrollTo(0,{})".format(k * 500)driver.execute_script(js_move)time.sleep(0.2)height = driver.execute_script(js_height)k += 1else:break# 注:必须开启无界面模式,即:--headless# 接下来是全屏的关键,用js获取页面的宽高,如果有其他需要用js的部分也可以用这个方法width = driver.execute_script("return document.body.scrollWidth")height = driver.execute_script("return document.body.scrollHeight")# 将浏览器的宽高设置成刚刚获取的宽高driver.set_window_size(width, height)time.sleep(1)# 截图并关掉浏览器driver.save_screenshot(img_path)time.sleep(0.5)driver.close()#创建word文档
def createDoc(prjName,oriId,keywod,date,detail):#初始化标题run = document.add_heading("").add_run(prjName)run.font.name = u'宋体'# 设置中文字体run._element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')# 设置字体颜色#run.font.color.rgb = RGBColor(255, 255, 255)p2 = document.add_paragraph()run2 = p2.add_run(oriId)p3 = document.add_paragraph()run3 = p3.add_run('关键字:'+keywod)p4 = document.add_paragraph()run4 = p4.add_run('日期:'+date)document.add_picture(img_path,width=Pt(500))def readExcel():#读文件book = xlrd.open_workbook(r'C:\Users\Administrator\Desktop\jietu\zhaobiao.xls')sheet = book.sheets()[0]for rown in range(sheet.nrows):if rown == 0:continueoriId = sheet.cell_value(rown,0)prjName = sheet.cell_value(rown,2)keywod = sheet.cell_value(rown,3)date = sheet.cell_value(rown,5)detail = sheet.cell_value(rown,6)#写文件with open(html_path,'w') as f:f.write(detail)f.close()#打开并截图screencut() #保存到文档中createDoc(prjName,oriId,keywod,date,detail)#####################调用方法开始########################
#读取excel文件
readExcel()
#保存
document.save('C:\\Users\\Administrator\\Desktop\\jietu\\招标信息.docx')

效果如下:

Python实现识别html文本内容并截图放入word文档

Python实现识别html文本内容并截图放入word文档相关推荐

  1. 网页截图并自动放入word文档【python】

    这里写自定义目录标题 使用场景 准备环境 实现逻辑 引入包 截图模块 访问mysql数据库,获取标题和网址 截图并保存为word 使用场景 从mysql数据库中读取需求标题和对应网页传参,提供网页截图 ...

  2. VBA读取html表格内容,科学网—VBA读取word文档表格中table的cell的text文本 - 付安民的博文...

    VBA读取word文档表格中table的cell的text文本 已有 11546 次阅读 2010-6-4 16:40 |个人分类:学习篇|系统分类:科研笔记 Sub Readtable() Dim ...

  3. python输出word内容_使用python-docx生成Word文档

    学会来使用python操作数据表和PDF,今天我们尝试下使用python操作Word文档. 首先是安装python-docx:(centos环境) pip install python-docx 基本 ...

  4. Python提取word文档中的图片,识别图片文字之后再转存为word文档

    #!/usr/bin/env python # coding: utf-8 import zipfile #压缩包 import os #文件库 import shutil import pytess ...

  5. python 一个word文档的某页内容复制到另一个word文档的第二页

    首先,需要使用 python-docx 库来读取和操作 word 文档.具体实现方法如下: 安装 python-docx 库:在终端中运行 pip install python-docx 安装. 导入 ...

  6. python win32转pdf 横版_使用Python3将word文档和pdf电子书进行格式互转(兼容Windows/Linux)...

    一些重要文档格式之间的互转在目前显得尤为重要,pdf作为通用格式在现在各个平台上兼容性是最好的,所以写python脚本将这些word文档批量转换pdf是最好的解决方案. 由于windows系统对于wo ...

  7. java中添加文本框_Java 添加、删除Word文档中的文本框

    在Word文档中,文本框是指一种可移动.可调大小的文字或图形容器.使用文本框,能够使文档在内容和形式上更为饱满.本文将通过使用Java编程来演示如何添加.删除Word文档中的文本框. Jar文件获取及 ...

  8. java读取word文档内容_合并多个Word文档内容,还在复制粘贴就out了,同事五秒轻松搞定...

    在我们工作中,我们经常会编写多个Word文档内容,那么怎么将多个单个的Word文档合并到一个文档中,这就会显得有些难度. 如上图所示,我们需要将三个不同的案例,快速的汇总到我们的案例汇总表当中.许多朋 ...

  9. 读取excel表格内容,并写入到word文档中

    import pandas as pd import docx from docx.shared import RGBColor ''' 该代码段适合,将excel题库转换成word格式的题库,写入的 ...

最新文章

  1. 一文理清集成学习知识点(BoostingBagging)
  2. 洛谷P2633 Count on a tree
  3. TCP协议连接过程详解
  4. linux安装python库报错pywin32_完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误...
  5. 【Java HashMap】常用函数的使用
  6. hexo的yelee主题使用自定义字体并用字蛛进行字体压缩的sed脚本
  7. 人工智能系统研究的9大挑战和4大趋势
  8. sentinel的资料整理
  9. Spring AOP--Aspect的CGLib方式
  10. sql server 用户'sa'登录失败(错误18456)(转载)
  11. 在Windows系统下,Nginx反向代理缓存配置
  12. android arcgis 添加地图,ArcGis for Android在地图上添加自定义图标
  13. [ CSOL ] - zihao + 自适应 + 文字滚动 + 媒体查询 + fullpage + 手风琴 + 延时动画
  14. jmeter接口自动化
  15. c语言转换为python语言_C语言程序转换为Python语言
  16. 傲腾readyboost_使用SD卡和ReadyBoost提升上网本速度
  17. 服务器硬盘热插拔后告警,IBM硬盘所谓支持热插拔带来的问题
  18. JAVA Exception Handing
  19. Excel 按照某一列不同内容插入分页符号
  20. Alkyne-PEG-COOH 炔烃PEG羧基

热门文章

  1. 【Linux】Linux脚本编程
  2. java 监控剪切板_java利用剪切板的作弊工具
  3. 小程序的服务器费用谁出,小程序服务器费用一年多少
  4. PMI-ACP敏捷认证:敏捷开发的6个实战经验
  5. 二维码制作app有哪些?介绍2个好用的制作软件给你
  6. vc调用surfer开发
  7. 五月同等学力国考计算机考试备考指南
  8. 科普:一文读懂IPv6是什么?
  9. 达内linux考试题,达内Linux工程师.doc
  10. Java Can not read response from server.Expected to read bytes,read bytes before connection问题解决