Skip to content

A python web crawler which collection patent data from related search engine.

Notifications You must be signed in to change notification settings

huangy10/PatentData2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

关于PatentData2 #github#

介绍

2016.12.19 Updates: 取消了原来master中的全面查询十四年内所有专利数据的版本,将原single_year分支的单年份爬取功能合并到master了。

这个工程是基于 PatentData的改进版。其作用是爬取并分析来自专利相关搜索引擎的专利数据,并分析这些数据之间的关联。目前这个工程主要涉及了soopat以及 USPTO这两个搜索引擎。然而,由于soopat这个网站限制了每个账户每天最多能够获取的专利数量的限制(大约在每天3000条),故实际上工程主要面向的还是USPTO这个搜索引擎,即主要是usptouspto_fast两个包内的内容。

uspto

uspto下的程序主要是按照逐个国家检索其在2001年至2014年之间在uspto注册的所有专利,目前这些国家的种类是固定的,如果需要配置的话,可以修改Patent/data/country_code.xlsx内的内容来指定。

爬取的结果存储在uspto/db.sqlite3中。我们选择了SQLAlchemy来作为ORM,你可以通过Patent/models.py中的内容来操作和读取数据。

uspto_fast

之所有创建了一个fast的版本,是因为uspto引擎在搜索属于美国的专利的时候,其速度回非常缓慢(需要数十秒的时间才能返回结果),因此我们创建了一个快速版本,不按国籍归属,而是全面查询2001年到2014年的所有国家的专利(预估有超过三百万条)。在single_year分支中,还提供了单独查询某一年份的专利的版本,方便里分布在多台机器上同时爬取。

How to Use

上述的两个模块都是通过运行其下的runme.py来执行。这个python脚本可以接受额外的命令行参数。

uspto可以接受两个额外的参数,第一个指定的是创建的搜索爬虫数量(目前来看一般不超过2个,因为每个搜索爬虫还下还有若干子爬虫在运行),第二个参数指的是跳过的页数。

uspto_fast在master分支下的版本只能接受一个参数,即搜索爬虫的数量,在single_year分支下还可以额外接受一个参数,该参数用来确定想要爬取的年份。

原理

这个工程核心机制有两个部分,一是通过tornado构建的基于协程的异步IO的爬虫系统,另一个是基于SQLAlchemy的Model部分。

About

A python web crawler which collection patent data from related search engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages