Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: контроль над парсингом !!!
 
 автор: dima2207   (15.03.2007 в 18:33)   письмо автору
 
 

подскажите как можно осуществить контроль над парсингом ?
дело все в том , что скрипт парсит при каждом вызове по разному , от чего это зависит , и как это можно контролировать ??????

   
 
 автор: Ziq   (15.03.2007 в 19:26)   письмо автору
 
   для: dima2207   (15.03.2007 в 18:33)
 

Значит меняются входные данные.

Без скрипта вообще в принципе ничего сказать нельзя.

   
 
 автор: dima2207   (15.03.2007 в 23:25)   письмо автору
 
   для: Ziq   (15.03.2007 в 19:26)
 

сервер с которого он получает инфу вроде-бы не мертвый ,не пойму тогда в чем дело , раз на раз не приходится , может все 55 стр. отпарсить а может и совсем не не много где-то 25-35 !!! почему ??? алгоритм ведь верный !!!


<?
set_time_limit
(0);
$replace = array (" ",
                 
"",
                 
"\\1",
                 
"\"",
                 
"&",
                 
"<",
                 
">",
                 
" ",
                 
chr(161),
                 
chr(162),
                 
chr(163),
                 
chr(169),
                 
"chr(\\1)");


require_once(
"config.php");

   
$query 'TRUNCATE TABLE `dbh1`';
  if(!
mysql_query($query)) exit(mysql_error());



for (
$j=$j 55 $j++)
{
$host "www.m.ru";
$path "/m3_lists/".$j.".shtml";

$buffer getdata($host$path);

//============================================
$pattern '#<a href="[^"]+">(.*?)</a><BR>#is';
preg_match_all($pattern$buffer$matches);
    
$LinkRegEx "#<a[^>]*href=['\"]?([^\"'\s>]+)['\"]?[^>]*>#is";
    
preg_match_all($LinkRegEx$buffer$matches1);
//------------------------------------------------
//for ($pz=61; $pz<count($matches[1]);$pz++)


for ($p=1$p<count($matches[1]);$p++)
{
$text_arr[$p] = $matches[1][$p]."\r\n";
//==========================================================================
 
$text[$p] = mysql_escape_string($text_arr[$p]);
    
$text1[$p] = mysql_escape_string($matches1[1][$p]);

  
$query "INSERT INTO dbh1 VALUES('".$p."','".$text[$p]."','".$matches1[1][$p+61]."')";
 if(!
mysql_query($query)) exit(mysql_error());


print 
". ";
}
}
$search = array ("'<script[^>]*?>.*?</script>'si",  
                 
"'<[\/\!]*?[^<>]*?>'si",          
                 
"'([\r\n])[\s]+'",             
                 
"'&(quot|#34);'i",               
                 
"'&(amp|#38);'i",
                 
"'&(lt|#60);'i",
                 
"'&(gt|#62);'i",
                 
"'&(nbsp|#160);'i",
                 
"'&(iexcl|#161);'i",
                 
"'&(cent|#162);'i",
                 
"'&(pound|#163);'i",
                 
"'&(copy|#169);'i",
                 
"'&#(\d+);'e");                  
function 
getdata($host$path)
{
     
$buffer true;
     
$fp = @fsockopen("tcp://".$host80$errno$errstr10);
     if (!
$fp) {
         return 
false;
     } else {
         
$out  "GET $path HTTP/1.1\r\n";
         
$out .= "Host: $host\r\n";
         
$out .= "Referer: $host$path\r\n";
         
$out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
         
$out .= "Connection: Close\r\n";
         
$out .= "\r\n";

         
fwrite($fp$out);
         while (!
feof($fp)) {
             
$buffer .= fgets($fp1024);
         }
         
fclose($fp);
     }
     return 
$buffer;
}


?>

   
 
 автор: Unkind   (16.03.2007 в 00:01)   письмо автору
 
   для: dima2207   (15.03.2007 в 23:25)
 

Там может стоять защита от многократного обращения к страницам сайта за определенный промежуток времени с одного IP. Возможно, удаленный сервер подвисает от столь ненормальной активности.
В любом случае, непонятно, зачем Вам каждый раз скачивать эти 55 страниц.

   
 
 автор: Саня   (16.03.2007 в 00:05)   письмо автору
 
   для: dima2207   (15.03.2007 в 23:25)
 

Проблема, скорее всего, из разряда этих: http://softtime.ru/forum/read.php?id_forum=1&id_theme=34405
Вместо HTTP/1.1 используйте HTTP/1.0.

   
 
 автор: dima2207   (16.03.2007 в 01:42)   письмо автору
 
   для: Саня   (16.03.2007 в 00:05)
 

Неа , все равно скрипт упорно парсит только половину страниц , а мне надо что-бы он хоть раз в сутки мог отпарсить все 55 страниц !!!

   
 
 автор: Bronepoez[)   (16.03.2007 в 07:30)
 
   для: dima2207   (16.03.2007 в 01:42)
 

Меняй прокси, ставь задержки между запросами небольшую паузу.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования