爬虫爬取谷歌专利文献

来源:互联网 发布:厦门旅行社知乎 编辑:程序博客网 时间:2024/06/05 03:12

功能:实现爬取谷歌专利文献

计算机行业的都知道,世界范围内互联网巨头非google莫属,最近几年在计算机领域具有很大轰动的论文大部分出自google,前一段时时间更是因为google的AlphaGo击败围棋冠军李世石名噪一时,google更闻名于搜索引擎,被称为世界最强大搜索引擎,同样google的爬虫技术也是非常了不得的,其反爬虫技术做的也非常好,下面我们就来简单的谈下爬取google专利的一些技巧。

1.选择用什么语言,一想到爬虫,大部分人会想到用python语言,python语言虽然资历不老,但其语言简练的书写形式使其市场份额越来越多,本篇就用python语言讲述下爬虫的过程,自己写过爬虫程序的人都知道,通常程序有三大主要模块,url管理器,下载器,解析器,我们通常用BeautifulSoup解析器根据自己需求来解析下载好的网页,url管理器也是自己根据需求自己手写,本文章我们重点讲解所用到的下载器。

2.通常我们直接访问google,是访问不了的,所以我们要先翻墙,GAE,免费软件和vpn是我们常用的方法,这次我们使用XX-NET代理,至于这个代理是怎么配的,网上有不少的教程,这里我们就不多说了,配完代理以后我们发现我们可以访问google了,离成功近了一步,我们试着访问下google专利网址,https://www.google.com.hk/patents,并输入一个专利号,是可以查到对应的专利文献如下图





我们本以为浏览器可以访问到,应该可以爬取了吧,我们使用这几行代码测试下通过代码是否可以访问到

import urllib2 
response = urllib2.urlopen('https://www.google.com.hk/patents/CN101011964B?cl=zh&dq=CN101011964') 
print response.read() 

结果并没有我们想象的打印出一个200,而是报了一个401错误,上网查了下401错误是权限问题,什么鬼,为什么我们用浏览器可以请求这个地址,而使用代码请求不了,这就是google做了反爬虫,urllib2在这里就被否定了,于是我们就想办法,怎么样才能让google反爬虫系统认为我们的爬虫是人为的访问而非使用程序请求,于是最后想了一个办法,就是每访问google时,通过chrome浏览器发出请求,读到这里可能有人问了,总不能人为地用浏览器请求吧,这算什么爬虫,最后需要简单的几行代码就可以完成这个操作了,

from selenium import webdriver

browser = webdriver.Chrome()
browser.get(url)
html_source = browser.page_source

return (html_source.encode('utf-8'))

在做这个操作之前,有几个注意事项,webdriver要去官网去下载http://chromedriver.storage.googleapis.com/index.html,下载下来的程序放在chrome浏览器安装目录的application目录下,还要在配下环境变量,path里加入下载程序的路径,还有就是安装selenium ,安装这个比较简单,计算机上装python的通常都装有pip,所以在这里只要一行命令即可,pip install selenium

这个时候我们发现我们已经可以通过程序爬取到google上的数据了,现在基本离成功不远了,我们知道计算机的速度远比人的点击速度快,所以在访问完一个地址,访问下一个url的时候,为了不让google的反爬虫系统发现我们这正它身上为所欲为,我们要让程序sleep个几秒钟,再访问下一个url,说道这里基本上都讲完了。

3.把下载下来的网页用BeautifulSoup解析下,并输出,即可。














0 0
原创粉丝点击