1 млрд. база с GOOGLE, или СУПЕРПАРСЕР

Тема в разделе "Зарубежные поисковики", создана пользователем Soprano, 13 май 2010.

Статус темы:
Закрыта.
  1. Soprano

    Soprano Комбинатор

    Регистр.:
    11 апр 2009
    Сообщения:
    623
    Симпатии:
    954
    В продолжение вот этой темы
    поделюсь новым скриптом, созданным одним умным буржуем c BHW. Скрипт позволяет вводить много запросов сразу, ввиду чего можно более точечно собрать ресурсы - по признакам, или по ГЕО, или как черт на душу положит. Вот скрипт:
    Естественно, кейвордов этих можно вставить хоть миллион.
    Просьба к спецам по PHP немного доработать:
    1.Нужно сделать, чтобы база, спарсенная по каждому кейворду, сохранялась в отдельный файл, и, желательно, называлась как он, напр. "newthread.txt", "viewtopic.txt" и т.п.
    2.Чтобы сохранялось в столбик.
    3.И, вообще, хотелось бы не вручную запросы подставлять, а чтоб брались из txt файла.

    Ну а потом ставим на крон и через сутки забираем весь Интернет.:ay:
     
    baltazorg, limpopo и puika нравится это.
  2. baltazorg

    baltazorg

    Регистр.:
    7 авг 2008
    Сообщения:
    203
    Симпатии:
    71

    По просьбе ТС реализовал сохранение в файл по имени запроса (имя_запроса.txt). Чтобы парсинг был непрерывным, то можно после первого сабмита признаков просто обновлять это окошко.
    На это к сожалению знаний php не хватает ((.

    Код:
    <?php
    function _clean ($key = ''){
    $key = str_replace("?", '', $key); 
    $key = str_replace("=", '', $key); 
    $key = str_replace("&", '', $key); 
    $key = str_replace('/', '', $key); 
    $key = str_replace('|', '', $key); 
    $key = str_replace(".", '', $key);
    $key = str_replace(",", '', $key);
    $key = str_replace(";", '', $key);
    return $key; 
    }
    
    if ($_GET[submit] == "yes"){
    $keyword1 =$_POST[keyword1] ;
    if($_POST[keyword2] !== ''){
    $keyword2 =$_POST[keyword2] ;
    }else{ $keyword2 = "keyword2";}
    if($_POST[keyword3] !== ''){
    $keyword3 =$_POST[keyword3] ;
    }else{ $keyword3 = "keyword3";}
    if($_POST[keyword4] !== ''){
    $keyword4 =$_POST[keyword4] ;
    }else{ $keyword4 = "keyword4";}
    if($_POST[keyword5] !== ''){
    $keyword5 =$_POST[keyword5] ;
    }else{ $keyword5 = "keyword5";}
    
    $urls = array('http://blogsearch.google.com/changes.xml?last=120', 'http://rpc.weblogs.com/shortChanges.xml');
    foreach($urls as $url)
    {
    $m= file_get_contents ($url);
    preg_match_all ('/url="(.*?)"/',$m,$match );
    $stored = array();
    for($i = 0; $i < count($match[1]); $i++)
    {
    if(strpos($match[1][$i], "$keyword1") !== FALSE)
    	{
    		if(!in_array($match[1][$i], $stored))
    		{
    		$stored[] = $match[1][$i];
    		$name1=_clean($keyword1).'.txt';
    		$file=fopen($name1,"a+");
    		fwrite($file,$match[1][$i]."\r\n");
    		fclose($file);
    		}
    	}
    
    elseif(strpos($match[1][$i], "$keyword2") !== FALSE)
    	{
    		if(!in_array($match[1][$i], $stored))
    		{
    		$stored[] = $match[1][$i];
    		$name2=_clean($keyword2).'.txt';
    		$file2=fopen($name2,"a+");
    		fwrite($file2,$match[1][$i]."\r\n");
    		fclose($file2);
    		}
    	}
    
    elseif(strpos($match[1][$i], "$keyword3") !== FALSE)
    	{
    		if(!in_array($match[1][$i], $stored))
    		{
    		$stored[] = $match[1][$i];
    		$name3=_clean($keyword3).'.txt';
    		$file3=fopen($name3,"a+");
    		fwrite($file3,$match[1][$i]."\r\n");
    		fclose($file3);
    		}
    	}
    
    elseif(strpos($match[1][$i], "$keyword4") !== FALSE)
    	{
    		if(!in_array($match[1][$i], $stored))
    		{
    		$stored[] = $match[1][$i];
    		$name4=_clean($keyword4).'.txt';
    		$file4=fopen($name4,"a+");
    		fwrite($file4,$match[1][$i]."\r\n");
    		fclose($file4);
    		}
    	}
    
    elseif(strpos($match[1][$i], "$keyword5") !== FALSE)
    	{
    		if(!in_array($match[1][$i], $stored))
    		{
    		$stored[] = $match[1][$i];
    		$name5=_clean($keyword5).'.txt';
    		$file5=fopen($name5,"a+");
    		fwrite($file5,$match[1][$i]."\r\n");
    		fclose($file5);
    		}
    	}
    
    }
    
    }}else{
    echo"
    <form type='text/html' method='POST' action='?submit=yes'>
    <p>Primary Keyword:<input type = 'text' name='keyword1' />
    <p>2nd Keyword: <input type='text' name='keyword2'/>
    <p>3rd Keyword: <input type='text' name='keyword3'/>
    <p>4th Keyword:<input type='text' name='keyword4'/>
    <p>5th Keyword:<input type='text' name='keyword5'/>
    <p><input type = 'submit' value = 'scrape now'/>
    </form>
    ";
    }
    ?>
    
     
    soprano1 нравится это.
Статус темы:
Закрыта.