2012-03-01 107 views
1

我们已经是擦伤搜索引擎结果页输出的客户网站位置分为定制报告套件的域的PHP脚本。需要修复刮PHP脚本

谷歌在二月的第一周,这阻止我们的脚本检测页面上的域名改变了一些东西,我还没有得到目前的原开发商在办公室也不能有任何我们的其他工作人员解决了这一点。

我敢肯定,我知道问题出在脚本,它只是,因为我不是一个开发商,我不能确定什么每一行实际上做。我们的脚本使用搜索结果中的相关类来确定我们要查找的位置实际在哪里。

脚本本身仍然运行并输出HTML罚款。这纯粹只是脚本的一部分,表示在页面上查找未检测到的“域”。

我明白,你可能会需要我,为了有更多的信息告知什么问题,我很乐意为您提供的文件/编码是必要的。如果有必要,我也准备为此付费。

下面是我觉得这个问题是存在的: -

// Note our use of ===. Simply == would not work as expected 
// because the position of 'a' was the 0th (first) character. 
if ($pos4 === false) { 
    $mystring5 = $val[0]; 
    $findme5 = $prevlink; 
    $pos5 = @strpos($mystring5, $findme5); 
    // Note our use of ===. Simply == would not work as expected 
    // because the position of 'a' was the 0th (first) character. 
    if ($pos5 === false) { 
     $serp = $serp + 1; 
     echo '<b>'.$serp.'.</b> '.$val[0].'<br /><br />'; 
     $link = get_string_between($val[1], 'href="', '" onmousedown'); 
     $link = str_replace('https://','',$link); 
     $link = str_replace('http://','',$link); 
     $link = str_replace('www.','',$link); 
     $link; 
     $prevlink = $link; 
     $prevlink = str_replace(strstr($prevlink, '/'), "", $prevlink); 
     $sitelen = strlen($row_site_check['website_name']); 
     $sitefrom_link = substr($link, 0, $sitelen); 
     if ($sitefrom_link == $row_site_check['website_name']) { 
      $site_found = 1; 
      $rank_postion = $serp; 
      $site_link = $link; 
      $con = mysql_connect("localhost","dbname","dbpass"); 
      if (!$con) 
      { 
       die('Could not connect: ' . mysql_error()); 
      } 

任何帮助将不胜感激。

谢谢。

+0

我不认为你需要打压strpos,该文档不提它产生的错误和警告任何。 – 2012-03-01 10:17:46

+0

另外'var_dump'是你的朋友,'get_string_between'在这里没有定义,请确保它使用'var_dump'达到预期值。 – 2012-03-01 10:19:05

+1

我不会抑制错误。从长远来看,你只会让自己的生活更加艰难。 – GordonM 2012-03-01 10:19:56

回答

1

退房的Google rank scraper(PHP,开源)

我使用的日常基础上它,因为它被释放,并有在2月份没有谷歌布局的变化是,据我可以告诉打破任何软件。

我不知道你会喜欢的答案,但其原因很可能是排名刮板我粘贴使用DOM,而你似乎依赖于正则表达式和字符串操作解析谷歌的HTML。
我个人曾试图根据过去的这种方法制作刮刀,并发现它需要大量的维护工作才能保持运行。有时真正丑陋的解决方法。
当使用DOM小的变化通常甚至不会损害任何东西,否则适应代码可能会更容易。
在过去的几年里,该解析器的DOM代码在没有大的中断的情况下工作,只需要进行两次小小的更改。当时谷歌在他们的网站上做了很多改变,只是没有造成不良影响。

上述链接检查器的DOM功能可以在functions.php文件中找到

function process_raw($htmdata,$page) 
+0

嗨,John,感谢您的回答,我们最终自己修改了脚本 - 这是Google搜索的URL参数发生了变化,导致我们的网站崩溃了,我知道您链接到的那个网站上面实际上 - 根据您的输入,这听起来像我们会更好地利用这一个,所以会看到我们的开发人员之一是否可以考虑让它在我们的服务器上设置。谢谢:) – zigojacko 2012-03-13 11:39:12