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