simple_html_dom.php

时间:2013-03-31 11:59:23

标签: php screen-scraping

我正在使用“ simple_html_dom.php ”来废弃维基百科网站上的数据。如果我在scraperwiki.com中运行代码,它会抛出错误退出状态139 ,如果在我的xampp服务器中运行相同的代码,服务器就会挂起。

  1. 我有一组链接
  2. 我正试图从所有网站获得识字
  3. 如果我使用一个链接运行代码,则没有问题,并且它返回了预期的结果
  4. 如果我试图一次性从所有网站获取数据我面临上述问题
  5. 代码是:

    <?php 
      $test=array
      ( 
       0 => "http://en.wikipedia.org/wiki/Andhra_Pradesh",
       1 => "http://en.wikipedia.org/wiki/Arunachal_Pradesh",
       2 => "http://en.wikipedia.org/wiki/Assam",
       3 => "http://en.wikipedia.org/wiki/Bihar",
       4 => "http://en.wikipedia.org/wiki/Chhattisgarh",
       5 => "http://en.wikipedia.org/wiki/Goa",
    
       for($ix=0;$ix<=9;$ix++){
    
         $content = file_get_html($test[$ix]);
         $tables = $content ->find('#mw-content-text table',0);
         foreach ($tables ->children() as $child1) {
            foreach($child1->find('th a') as $ele){
            if($ele->innertext=="Literacy"){
                    foreach($child1->find('td') as $ele1){
                       echo $ele1->innertext;
       }}}  }} 
    

    指导我哪里错了。有没有内存问题???有没有xampp配置???

1 个答案:

答案 0 :(得分:0)

<?php 
  require 'simple_html_dom.php';
  $test = array( 
   0 => "http://en.wikipedia.org/wiki/Andhra_Pradesh",
   1 => "http://en.wikipedia.org/wiki/Arunachal_Pradesh",
   2 => "http://en.wikipedia.org/wiki/Assam",
   3 => "http://en.wikipedia.org/wiki/Bihar",
   4 => "http://en.wikipedia.org/wiki/Chhattisgarh",
   5 => "http://en.wikipedia.org/wiki/Goa");

  for($ix=0;$ix<=count($test);$ix++){
    $content = file_get_html($test[$ix]);
    $tables = $content ->find('#mw-content-text table',0);
    foreach ($tables ->children() as $child1) {
      foreach($child1->find('th a') as $ele){
        if($ele->innertext=="Literacy"){
          foreach($child1->find('td') as $ele1){
            echo $ele1->innertext;
          }
        }
      }
    }   
    $content->clear(); 
  }
?>

但这些网址太多了。您可能会收到max execution time execeeded的致命错误,或者您可能会收到error 324