本文主要记录一下最近所作的关于Google批量搜索的实现方式。api
搜索目的:搜索引擎
获取关键词在某个域名下对应的Google搜索结果数google
搜索方式:url
关键词+inurl代理
例如:"爬虫" inurl:cnblogs.comrest
第一种方式:orm
使用爬虫手段,构造Google搜索url进行采集。blog
示例:https://www.google.com/search?q=%22%E7%88%AC%E8%99%AB%22+inurl:cnblogs.com&filter=0
索引
此种方式须要面对的问题有:接口
一、搜索结果有偏差,不一样ip获得的结果数不同,不过偏差也不是很大,能够接受。
二、搜索结果第一页显示数量和第二页显示数量存在偏差,偏差很大。第二页更真实。
三、单个ip通常访问几十次就会被识别为机器人,须要验证码,而Google验证码的难度惊人。。。
四、因为某些缘由,能够访问Google的资源很是宝贵。市面上甚至没有能够用的代理(大量短效代理)。
Luminati是一家不错的海外代理服务商,可是居然不能访问Google。自建代理的话,成本过高。
解决方案:
我仍是自建代理了:)。
第二种方式:
使用Google Custom Search Api,文档参见 https://developers.google.com/custom-search/v1/overview。
费用计算:
一、每日无偿使用100次。
二、超过100次后,按照$5/1000次收费。每日上限10000次。
三、也有不设置上限的接口,参见 https://developers.google.com/custom-search/v1/site_restricted_api
区别在于此接口不能全网搜索,若是只是搜10个一下指定站点的内容能够用这个。
使用条件:
一、你要有一个Google帐号
二、加入Google Cloud Platform,建立 Project。建立 API key,启用Custom Search Api。具体操做步骤看文档指引。
三、建立结算帐号 https://console.cloud.google.com/billing。须要真实姓名电话等信息以及支持外币的信用卡。
目前Google有新注册赠送一年免费服务+300美金的政策。注册完便可领取,不过可能因为国内注册用户太多吧,Google
在注册页面上已经不支持选择中国了。具体解决办法请你们自行Google搜索,或参考下文解决办法。
四、而后你就能够愉快的使用API了,不用担忧被封。
使用方式:
参见:https://developers.google.com/custom-search/v1/using_rest
api地址:https://.googleapis.com/customsearch/v1
必须参数:
cx:Google自定义搜索引擎id,参见https://cse.google.com/cse/all
q:搜索词
key:API key
存在问题:
一、搜索结果数比Google网页搜索第一页结果少,和第二页结果基本一致。
二、贵,不过若是搜索量不是很大的话,能够利用免费次数也还好。
PS:
一、GCP结算帐号注册方法参考:
具体过程不赘述,只说关键点。
一、注册国家选择美国
二、居住地址能够搜索美国地址生成器,随便写一个
三、姓名、电话 要写真实的
四、信用卡要写真实的,帐单地址也是真实的
而后就没有了,我注册的时候没别的问题,不过看不少网友说,有时候会遇到须要再次验证的状况。还须要提交身份证实和信用卡帐单截图。
二、免费的1000次API key获取方式:仍是不说了,本身找吧
参考: