标点符(钱魏 Way)

怎样抓取Google的搜索结果页

Google搜索结果页(SERP)的抓取,对SEO从业人员等都有很大的帮助,通过抓取SERP我们可以监测网站的排名情况、PPC广告的情况、链接流行度等数据。

Google作为最大的搜索引擎,有着最大的抓取程序Googlebot,但是他却禁止其他网站抓取他的页面。Google使用了大量的技术来检测和阻止自动请求。一旦Google检测到自动抓取程序,那么会出现以下几种情况:

  1. 提示电脑中了病毒或木马;
  2. 提示木马程序,并要求输入验证码;
  3. Google会在一段时间内阻止您的IP访问;
  4. Google阻止您访问的时间会加长。

Google是怎么检测抓取程序的?可能的方法有:

  • 通过IP 地址,IP地址可以作为用户的唯一标识。
  • 关键词的变化,普通用户不会再极短的时间内查询很多关键词。
  • 抓取频率,每次抓取的频率都要在Google限定的范围内。

隐藏抓取迹象,避免被Google屏蔽。

  1. 首先需要的是一个可靠地IP代理列表,代理地址需要每有被Google屏蔽掉。最好准备50-150个代理地址,一旦Google发自动抓取,千万别继续去抓取。
  2. 保证更换代理IP以后,你的Cookies也随着变化。
  3. 通过在URL中添加&num=100,将搜索结果的暂时数量设置为最大(100)。
  4. 不要使用多线程去抓取。
  5. Google对每个关键词,仅提供1000个查询结果。
  6. 在适当的时间更换您的代理IP,这是抓取成功的关键。如果你要住区每个关键词300-1000条结果,需要给每个关键词更换一个IP;如果查询的结果小于300个,最好在查询过程中uoxia延迟炒作,延迟10-20秒或真假代理数量。
  7. 如果返回的是一个验证码页面,你最好马上停止现在的行为。

下面是一个使用PHP写的抓取Google搜索结果页的代码。代码中主要包括有:

  1. 自动代理轮换(使用seo-proxies.com的API),如果你拥有自己的代理IP地址表,可以通过修改代码改变它。如果你有seo-proxies.com的license,可以通过修改scaper.php中的”USERID”和”API-PASSWORD”来匹配license。
  2. 自动从一个搜索结果页爬去其他搜索结果页。
  3. 使用联想词来增加搜索结果的数量。
  4. 自动发现和移除广告。
  5. 将抓取数据已数组方式保存,使用HTML方式或其他格式在前台页面呈现。

你唯一要做的是把抓取的结果储存在数据表中,进行管理。

代码下载:http://www.box.net/shared/mz1d48hg1c

码字很辛苦,转载请注明来自标点符《怎样抓取Google的搜索结果页》

评论

  1. homepagedo #1

    太复杂了吧?而且虚拟机很多功能没有

    回复
    2012-03-24