原始出处:https://www.cnblogs.com/Charltsing/p/XPath2Doc.html

很多人需要从网站采集一些数据填写Word模板,手工操作费时费力还容易出错,所以我给朋友写了这个工具。本程序只支持Docx格式的模板文件。
本程序不是爬虫,不是自动采集工具,不能自动登录网站。需要自己在WebBrowser窗口里面手工登录,并找到需要的数据页面,然后点击程序按钮进行采集,所以是个半自动的网页数据填充Docx工具。

工作原理:
网页的每个元素,都可以表示成为XPath语句,所以我们可以读取浏览器打开的网站页面源代码,通过XPath语句得到网页元素中的文本。
教程:http://www.w3school.com.cn/xpath/index.asp

XPath语句的获取办法:
    通常我们可以使用谷歌的Chrome浏览器打开网站页面,按F12调出开发者工具界面,在ELements选项卡下,随着鼠标的移动可以看到网页内容被阴影覆盖,点开三角符号,可以更进一步定位准确的位置,直到找到最终需要的数据位置。在找到的文本上点鼠标右键,在弹出的菜单中,选择Copy-Copy XPath,然后粘贴到记事本即可得到需要的XPath语句。
这里需要说明一点:如果拷贝出来的XPath语句中有/tbody会影响采集,程序内部对此问题进行了处理,但可能会在某些特殊情况下还是会影响数据采集,可以手工去掉。

软件运行环境:
Windows7 Sp1操作系统请安装下面的组件(重要:VC库如果不安装,本程序无法启动):
1、.Net Framework 4.5.2。https://www.microsoft.com/en-us/download/details.aspx?id=42642
2、32位 VC2017(或更高版本)运行库 。 https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads
     下载vc_redist.x86.exe
在Windows10系统下上述组件一般自带,不需要单独安装。Windows10 1903运行通过。
不支持Windows XP操作系统。

软件操作说明:
1、本程序工作需要三个配置文件:General.ini,自定义.ini,自定义模板.docx。后两个文件名自己定义。
    General.ini文件中定义了INI文件和Docx模板文件的存放目录,可以不填,默认是程序所在目录。
    自定义.ini、自定义模板.docx是软件使用者自己创建的网页采集XPath语句及最后生成文件所用的Docx模板,具体设置方法请看ini文件中的说明。注意,Docx模板文件中的“@<#0001#>@”之类的字符是在INI文件中定义的用于替换网页采集内容的标记字符串。ini文件中定义了替换关键字的前后缀和模板文件名。

2、使用本程序前,请先建立好你自己的INI配置文件和Docx模板文件。(具体可以参见附带的企查查、天眼查两个配置文件和起诉书模板)
需要说明的是,模板文件支持对文档的不同部分使用不同的网址进行采集,注意Url的设置。

3、使用方法:
    启动程序--选择模板--点击采集数据按钮旁边的黑色三角符号,点开下拉菜单,点击需要采集的部分。等候浏览器加载网页完毕,手工输入需要查询的内容,点击查询,找到数据的具体页面,然后点击采集数据按钮,观察右侧的列表中是不是已经得到需要的数据。继续点开下拉菜单,选择下一个需要采集的部分,如果网址发生了变化要等候浏览器加载完毕,找到需要的数据页面。点击采集数据按钮观察右侧列表中是不是得到了第二部分的数据。如此反复,直到数据全部采集完毕。
    如果前后两部分的网址相同,在点击下一部分的下拉菜单之前,要先在浏览器中重新查询新的数据,等新数据页面出来之后在点击下拉菜单选择下一部分进行采集。(网址相同的情况下,点击下一部分会直接从网页取数据,如果浏览器没有换页面,数据就错了。)如果某个部分需要重新采集,请先点击下拉菜单中的该部分名称,然后点击采集按钮重复采集该部分(此时可以随意改变浏览器的数据页面,得到的就是不同公司数据)。
    列表中采集得到的数据结果如果有偏差,可以单击自行修改。XPath语句如果有什么错误,也可以自己修改看测试结果(XPath语句在修改后会立即重新抓取浏览器的数据,所以浏览器最好是有效数据页面),在程序中修改的XPath语句,不会保存到INI文件中,请自行手工保存。
    如果列表中数据无误,预览窗口中的Docx模板内容也正确,则可以点击创建文档按钮,填写要生成的文件名,本软件会使用抓取到的网页数据替换模板中的索引字符串,自动生成Docx文档。
    需要说明的是,右下角的Docx预览窗口不能完整的支持Word文档,对不标准的文档可能会出现文本缺失或者错位现象。遇到这种情况,可以忽略,或者将模板文件改成规范的文本格式(单倍行距)。

压缩包中自带了企查查、天眼查配置文件和起诉书的简单模板,供使用者参考。

本程序使用有一个门槛:通过手工操作Chrome得到网页数据的XPath语句。
建议电脑小白找个略懂鼠标操作的人帮助获取和填写INI配置文件

也可以在本贴留言,或百度联系作者以获取对程序的使用帮助。

软件操作演示可以看压缩包中的 Demo.gif 动画文件

下载链接:链接:https://pan.baidu.com/s/13hegfjZr1T9XVJqQKudPuQ           提取码:2t3m

联系QQ 564955427

XPath2Doc,一个半自动采集网页生成Word Docx文件的工具,带企查查和天眼查模板的更多相关文章

  1. POI读写Word docx文件

    使用POI读写word docx文件 目录 1     读docx文件 1.1     通过XWPFWordExtractor读 1.2     通过XWPFDocument读 2     写docx ...

  2. 使用POI读写word docx文件

    目录 1     读docx文件 1.1     通过XWPFWordExtractor读 1.2     通过XWPFDocument读 2     写docx文件 2.1     直接通过XWPF ...

  3. 利用 Pandoc 将 Markdown 生成 Word/PDF 文件

    Pandoc 是一个格式转化工具,可以用于各(luan)种(qi)各(ba)样(zao)的文件转换, 反正我是认不全官网上的那个图(傲娇脸), 之前一直使用它将 Markdown 文件转换成 Html ...

  4. 解决 apache poi 转换 word(docx) 文件到 html 文件表格没边框的问题

    一.起因 这几天在做电子签章问题,要通过替换docx文件中的占位符生成包含业务数据的合同数据,再转换成html文件,转换成pdf文件.遇到的问题是:通过apache poi转换docx到html时,原 ...

  5. PHPWord生成word实现table合并(colspan和rowspan)

    PHPWord(http://phpword.codeplex.com/)是一个很好处理和生成WORD文档的工具,但是生成复杂的word,如colspan和rowspan的实现,还是需要你做些修改. ...

  6. 利用html模板生成Word文件(服务器端不需要安装Word)

    利用html模板生成Word文件(服务器端不需要安装Word) 由于管理的原因,不能在服务器上安装Office相关组件,所以只能采用客户端读取Html模板,后台对模板中标记的字段数据替换并返回给客户端 ...

  7. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  8. Java利用poi生成word(包含插入图片,动态表格,行合并)

    转(小改): Java利用poi生成word(包含插入图片,动态表格,行合并) 2018年12月20日 09:06:51 wjw_11093010 阅读数:70 Java利用poi生成word(包含插 ...

  9. Python生成word

    Python生成word 使用python-docx-template库, 将html转为word. python-docx-template可以使用类似jinja2的模板语法. 依赖docx库, 安 ...

随机推荐

  1. docker使用国内镜像加速

    在daemon.json文件里以下国内镜像 { "registry-mirrors": [ "https://registry.docker-cn.com", ...

  2. wiki部署

      一.准备环节 1.上传软件   [root@web01 tools]# tar xf jdk-8u60-linux-x64.tar.gz -C /application/ [root@web01 ...

  3. python、第八篇:索引原理与慢查询优化

    一 介绍 1. 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查 ...

  4. 2019.9.27PHP基础

    PHP 基础语法规范: 1 <?php 开头 ?>结尾 2 php可以单独存在也可以和html等结合使用 3后缀名一般以.php结尾 php4,php5,php6,php7,phtml. ...

  5. QT textbroswer textedite Qlist的常用的操作函数

    Textbrowser: 一.添加函数 1.insertPlainText():这个函数特别好用,括号里面的参数是QString,可以用QString(“%1%2”).arg(QString变量).a ...

  6. Iterator、Generator、Decorator、Descriptor

    Python中的迭代器.生成器.装饰器.描述符. 可迭代对象(iterable)但凡是可以返回一个迭代器的对象都可成为可迭代对象可迭代对象实现了__iter__方法,该方法返回一个迭代器对象迭代器(i ...

  7. Practical Lessons from Predicting Clicks on Ads at Facebook (2014)论文阅读

    文章链接: https://quinonero.net/Publications/predicting-clicks-facebook.pdf abstract Facebook日活跃度7.5亿,活跃 ...

  8. Mongodb的锁 原子性 隔离性 一致性

    读写锁 Mongodb使用读写锁来来控制并发操作: 当进行读操作的时候会加读锁,这个时候其他读操作可以也获得读锁.但是不能或者写锁. 当进行写操作的时候会加写锁,这个时候不能进行其他的读操作和写操作. ...

  9. Angular2 父子组件通信方式

    https://www.jb51.net/article/133868.htm 这次给大家带来Angular2 父子组件通信方式,使用Angular2 父子组件通信方式的注意事项有哪些,下面就是实战案 ...

  10. hdu4507 吉哥系列故事——恨7不成妻[数位DP]

    这题面什么垃圾玩意儿 首先看到问题格式想到数位DP,但是求的是平方和.尝试用数位DP推出. 先尝试拼出和.设$f[len][sum][mod]$表示填到$len$位,已填位置数位和$sum$,数字取余 ...