PHP获取网站的谷歌排名而不会抓取谷歌

时间:2011-03-22 00:43:21

标签: php api search seo

我想以编程方式检索Google搜索结果,以便找到特定域在搜索结果页中排名的位置。

但是,我不想简单地抓取搜索结果页面,因为我预计会有很高的数量并需要经常这样做,如果我理解正确的话,Google会将此视为滥用行为?

我能找到的大多数脚本/类都试图解析HTML页面,这是一个更好的方法。

是否有获取Google搜索结果的API? 有什么想法吗?

谢谢!

4 个答案:

答案 0 :(得分:3)

首先你应该明白一些事情: 没有“一个”排名。在Google上搜索关键字时看到的SERP与其他人在google关键字时看到的SERP不同。它们是一系列“个性化”因素(位置,启用cookie,即时搜索,白天,以前的搜索,网络历史,数据中心......),这些因素考虑了某些事物的排名。对于一些流行的关键词,前3个是有点静态,5到10在一个流量,十点之后变得非常模糊,在20之后就像投掷骰子一样。

这只是google serps方法的抓取。

网络搜索API(已弃用但正在使用)或自定义搜索API(== crap == d * ckmove by google)会变得更糟。

所以无论你做什么,你总会得到一个几乎无意义的谷歌搜索结果快照。

并且不,没有其他官方API。

这是坏消息,现在是好消息......如果您担心自己的域名,只需转到“Google网站管理员工具”并点击“搜索查询”即可。这是你可以得到的最好的信息(它仍然是模糊的,但它是你找到的,平均排名的地方)。或者您可以应用一些专门的谷歌anlaytics过滤器来检查谷歌引用流量的排名位置。

如果你想分析你的竞争对手,那么很多搜索营销公司都会出售这种服务(大多数都是专门针对每个市场的,即在德国它是sistrix,有很多这样的服务在美国的公司。)

但正如我之前所说:数据是一个毫无意义的快照,而且大部分时间都是不可操作的。

答案 1 :(得分:0)

几个月前,他们提供免费的api。但现在已经弃用了。

您可以尝试新的Custom Search API.

  

限制:只有100个免费查询/   一天。

答案 2 :(得分:0)

这可以通过使用不同的代理来抓取谷歌SERP来完成,请求之间的随机休眠时间和读取和发送本地化结果的cookie以及适当的用户代理集合,我遵循这种方法,我使用300代理的代理服务器场我可以整天抓取任何网站而不会被阻止,你可以遵循许多提示,以防止被阻止,如避免按顺序访问网页:/ page / 1,/ page / 2等。并且不要求一个新的网页,每N秒一次。这两个错误都会引起对Web请求的关注,因为真实用户会随机浏览。因此,我们需要确保以无序方式抓取网页,并为请求之间的延迟添加随机偏移量。

答案 3 :(得分:0)

我不喜欢所选择的答案。

首先它太笼统了,有一个SERP排名,主要取决于语言和国家。
其他因素很少是一个真正的因素而且很小(例如在谷歌,你可以喜欢你的网站,他们将排在最前面)。

我亲自进行了大量的测试,当我从国外搜索关键词并向那里的人询问时,我得到了完全相同的关键词。

现在是核心问题 Google自定义搜索API不是排名跟踪的选项,仅对少量数据研究很有用 Bing的数量相同,两者对于较大数量而言都非常昂贵。

如果你想获得那些排名数据你只能抓取(抓取)搜索引擎,这绝对可能(我这样做)或者你使用抓取服务为你做这件事并将原始数据提供给你的软件(我自己也用那个)。

正如您所说,您不想自己爬行,请查看scraping.services 这是一个主要为开发人员设计的抓取服务,如果我没有弄错的话,你可以为大量的关键字制作一个全功能的排名跟踪引擎。
他们还有一些API模块用于生成图表和报告(不同于sistrix但同样的酱油),如果你不想自己做。

就我个人而言,我还没有使用他们的关键字跟踪器,我直接使用Google和Bing他们的抓取API,到目前为止它没有问题。

如果您对自己搜索引擎感兴趣,我可以帮助您,这并不困难(也可能适用于大量)。