在上一篇文章《开源Python爬取复审委决定代码——共享1.9万无效决定》中,公开了从专利复审委网站爬取决定的Python源代码,并共享了所爬取的无效决定和复审决定。从结果来看,大家对共享的决定,特别是无效决定比较感兴趣,百度网盘显示累计保存600多次,下载400多次。
为了方便维护,集思广益,我已将源代码托管到GITHUB上,名称为botouzi/Python-patent,网址为:https://github.com/botouzi/Python-patent,欢迎Star以及Fork。另外,在GITHUB上我也托管了批量读取无效决定的Python源代码,在同一个目录里。
GITHUB上托管Python源代码爬取流程
在Github托管的无效决定爬取Python源代码的思路是,根据决定号与网址的关系,直接获取某个无效决定的网址。以决定号为36696为例,其网址为后半段为:decidedetail.jsp?jdh=36696&lx=wx,进入该页面,利用网页的开发者工具,可以获得该决定号word文档的网络存储地址,如下图所示。
利用xpath进行解析提取,可以获取word文档网址,将该word文档读写到本地存储即可。决定号是变化且连续的,利用循环,可以实现决定号的连续提取。
该爬取方法相对简单,但缺点是如果网址发生变化,将导致爬取失败。实际上,复审委网站提供了采用决定号进行查询的输入框,利用该输入框,可以进行Python模拟查询爬取。
Python模拟查询爬取流程
专利复审委提供了决定号查询功能,如下图所示,用Python模拟输入决定号后36696,跳转至“审查决定查询”页面。由于决定号是模糊查询,可能导致查询列表中出现复审决定,但可以根据具体链接构造或者时间等定位无效决定网址,从而抽取该网址,其后的爬取方法可见托管的源代码。对于复审决定亦是如此。
由于我先前已经共享了无效决定,所以再爬取时可以设定一定余量,不必从头开始。
相较于以前的代码,由于多了查询、抽取网址步骤,运行效率变低。但如果决定网址变更,这种方法可用来爬取更新的决定。
Python批量读取无效决定
无效决定的格式统一,可以利用Python批量读取决定的表格信息和无效结论。下载的word文档均为doc格式,需要先转化为docx格式,以方便批量读取。无效决定有多个表格,其中无效表格信息为tables[1]。具体源代码见下图:
Excel中写入的内容如下图所示:
由于需要循环定位无效结论的段落,并且使用了表格,读取效率不高,该代码也托管到GITHUB上了,欢迎改进共享。
所读取的EXCEL文档我整理好后,也会共享到GITHUB上。