我想做一个小脚本,我可以每天在谷歌上搜索我的关键字。
最好的方法是什么?
如果我使用 API,我认为此任务没有任何 API,是否有限制?
我想检查前 100-200 个结果。
- 手动搜索一次,复制指向结果页面的结果 URL
- 编写一个 PHP 脚本,该脚本:
- 使用以下
file-get-contents()
从该 URL 获取内容 - 将完整的 HTML 结果解析回仅包含与您相关的搜索结果数据的 PHP 数组
- 将阵列写入数据库或文件系统
- 使用以下
- 在服务器上将 PHP 脚本作为 cron 作业运行(每小时、每天、随心所欲)
- 准备好在 Google 更改结果页格式时更新脚本
- 给自己找个律师
更好的是,按照马里奥的指示为自己获得商业许可证。这样,您可以跳过上述所有步骤(尤其是 4 和 5 可能会错过)。
您的最大问题是Google结果现在非常自定义 - 取决于您要搜索的内容,可以根据您的确切位置(不仅仅是国家/地区),一天中的时间,搜索历史等自定义结果。
因此,您的结果可能不会完全恒定,并且肯定不会与几英里外具有不同浏览器历史记录的人相同,即使他们搜索完全相同的东西。
有各种SEO公司提供工具使结果更加标准化,这些工具不会违反Google服务条款。
尝试:http://www.seomoz.org/tools 和 http://tools.seobook.com/firefox/rank-checker/
我写了一个php脚本,它优雅地解析/抓取前1000个结果的任务,没有任何谷歌的个性化效果,以及一个名为真正的谷歌搜索API的更好版本(它概括了任务,返回一系列格式良好的结果)这两个脚本都在服务器端工作,并直接从结果页面解析结果 uging cURL 和正则表达式
几年前,我与GooHackle的人一起工作,他们有一个Web应用程序,可以完全满足您的需求,而且成本不高,他们每月的计划低于30美元。
就像Blowski已经说过的那样,现在Google的结果是非常定制的,但是如果您始终使用相同的国家和查询参数进行搜索,则可以非常准确地查看多个关键字和域的排名。
如果你想自己开发应用程序也不会太难,你可以使用 PHP 或任何其他语言定期执行查询并将结果保存在数据库中。基本上只有两点需要解决,做HTTP查询(使用cURL很容易完成)和解析结果(你可以使用正则表达式或DOM结构)。然后,如果您想监控数千个关键字和域,事情会变得更加困难,因为Google开始禁止您的IP地址。
我认为像这样的应用程序来自"大人物",来自不同国家/地区,有数百或数千个不同的IP地址。这使他们能够收集大量关键字的Google结果。
关于我最初提到的在线工具,他们还有一个任何人都可以使用的在线谷歌抓取工具,并显示它是如何工作的,只需查询和解析。
SEOPanel 解决了类似的问题:您可以下载开源代码并为搜索结果提取一个简单的关键字解析器。使用的"技巧"是减慢查询搜索的速度,而项目由Google(代码)自己托管。