爬取Google patent上公司所有专利

爬取Google patent上公司所有专利

需求:给出了需要爬取的公司列表,形式如下:
[‘DURATA THERAPEUTICS INC’,‘DYNAVAX TECHNOLOGIES CORP’]
要求将公司名输入到google patent的搜索框中,转至的界面里会出现下载的按钮。
在这里插入图片描述
通过F12可以找到Download的链接:
https://patents.google.com/xhr/query?url=assignee%3DDYNAVAX%2BTECHNOLOGIES%2BCORP%26oq%3DDYNAVAX%2BTECHNOLOGIES%2BCORP&exp=&download=true
可以看出下载连接其实是又固定前缀以及公司名称再加上固定后缀组成,所以可以直接利用requests.get来访问下载文件

    r = requests.get(url,headers=headers,proxies=proxies)
    fo = open(filename,'wb')                        
    fo.write(r.content)                              
    fo.close() 

这样就可以直接将url对应的文件下载到指定文件下。

但是google patent有一定的反爬机制,针对其反爬,我分别采取了3点措施:
(1)随机ip池
(2)随机user-agent池
(3)增加每次爬取的延时,这一点特别重要,google会针对频繁请求的用户实施封禁

对应代码如下:

# 随机user-agent池
user_agent_pool = ["Mozilla/5.0 (Macintosh; U; Mac OS X Mach-O; en-US; rv:2.0a) Gecko/20040614 Firefox/3.0.0 ",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.3) Gecko/2008092414 Firefox/3.0.3",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5",
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110218 AlexaToolbar/alxf-2.0 Firefox/3.6.14",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"]
# 随机ip池
ip_pool = ['114.230.69.170:9999','61.135.155.82:443']
for company in company_list:
    patent_name = 'url=assignee=' + company + '&oq=' + company + '&exp=&download=true'
    url = base_url + patent_name
    filename = './company_patent/' + company + '.csv'
    ip = ip_pool[random.randrange(0,2)]
    headers['user_agent'] = user_agent_pool[random.randrange(0,len(user_agent_pool))]
    proxy_ip = 'http://'+ip
    proxies = {'http':proxy_ip}
    r = requests.get(url,headers=headers,proxies=proxies)
    fo = open(filename,'wb')                         
    fo.write(r.content)                               
    fo.close() 
# 我选择延迟15s,没有被封禁
    time.sleep(15)

最后就可以将公司列表中所有公司的专利爬取下来了,当然公司列表是存在excel文件中的,具体的读取代码就不放上来了,全部代码请移步我的github:https://github.com/Weifanwong/google_patent_spider

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值