Форум

парсер простейший

Цитировать

Разберем простейший парсер. Что нам нужно ?  Библиотека simple_html_dom.php  и несколько строк кода. Метод загрузки страницы с использованием curl и несколько циклов. Пропишем библиотеку.

 

 require_once('simple_html_dom.php'); 

 

Цитировать

далее метод загрузки страницы и преобразованием таковой!

$html22 = file_get_contents_curl2($_GET['link']);
$html2 = str_get_html($html22);
Цитировать

В этот метод мы передаем параметр link -  то есть адрес страницы загрузки(донора). И создаем массив и директории куда грузим

$i_m = array();
//$patch_y = 'audi/';
$patch_y = 'bmw/';
Цитировать

далее работа с библиотекой simpla

$u =0;
 
foreach($html2 ->find('.cell2') as $html222){ 
foreach($html222 ->find('.car-info__description .car-info__car-models') as $nm){
    
           $mnn = $nm->innertext;
         //  echo $mnn; die();
}
 
////собираем картинки
 foreach($html222 -> find('.car-info__car-image img') as $tabcont){  
          $urr = preg_replace('/&Size=150x100/','', preg_replace('/amp;/','',$tabcont->lazyurl));
}
 
  $i_m[$u] = [            
                    'nam' =>$mnn,
                     'url' => $urr   
            ]; 
$u++;

}

Цитировать

ну и концовка  загрузка фото

foreach($i_m as $ls){ 
 $sourcecode= file_get_contents('http:'.$ls['url']); 
	$fl = preg_replace('/\s/','',preg_replace('/[,;]/','',$ls['nam'])).'.jpg';
	 $patch = $patch_y.$fl;	 
	 $savefile = fopen($patch, 'w++');
        fwrite($savefile, $sourcecode);
       fclose($savefile);
     
}
echo 'all';

 

Цитировать

ну и вспомогательный метод про который писал

 function file_get_contents_curl2($url) {
	$ch = curl_init();
 
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.
	curl_setopt($ch, CURLOPT_URL, $url);
//	curl_setopt($ch,CURLOPT_TIMEOUT,5000); 
	//curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
	//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; YandexAccessibilityBot/3.0; +http://yandex.com/bots)');
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');

	$dat_ = curl_exec($ch);
	curl_close($ch); 
	return $dat_;
}
Цитировать

вот полный пример , напоминаю что теги под себя переписывать нужно

require_once('simple_html_dom.php');   
 
ini_set('display_errors',1);
error_reporting(E_ALL);
 

$html22 = file_get_contents_curl2($_GET['link']);
$html2 = str_get_html($html22); 
 
$i_m = array();
//$patch_y = 'audi/';
$patch_y = 'bmw/';
//$patch_y = 'chrysler/';
//$patch_y = 'citroen/';
//$patch_y = 'honda/';
//$patch_y = 'hyundai/';
//$patch_y = 'infiniti/';
//$patch_y = 'isuzu/';
//$patch_y = 'jaguar/';
//$patch_y = 'jeep/';
//$patch_y = 'kia/';
//$patch_y = 'land rover/';
//$patch_y = 'lexus/';
//$patch_y = 'lifan/';
//$patch_y = 'mazda/';
//$patch_y = 'mercedec-benz/';
//$patch_y = 'mini/';
//$patch_y = 'mitsubishi/';
//$patch_y = 'porsche/';
//$patch_y = 'renault/';
//$patch_y = 'rolls-royce/';
//$patch_y = 'rover/';
//$patch_y = 'saab/';
//$patch_y = 'seat/';
//$patch_y = 'skoda/';
//$patch_y = 'smart/';
//$patch_y = 'ssangyong/';
//$patch_y = 'suzuki/';
//$patch_y = 'toyota/';
//$patch_y = 'wolkswagen/';
 
 
$u =0;
 
foreach($html2 ->find('.cell2') as $html222){
 
 
foreach($html222 ->find('.car-info__description .car-info__car-models') as $nm){
    
           $mnn = $nm->innertext;
         //  echo $mnn; die();
}
 
////собираем картинки
 foreach($html222 -> find('.car-info__car-image img') as $tabcont){ 
 
          $urr = preg_replace('/&Size=150x100/','', preg_replace('/amp;/','',$tabcont->lazyurl));
}
 
  $i_m[$u] = [            
                    'nam' =>$mnn,
                     'url' => $urr
   
            ];
 
 
$u++;
}

 
//загружаем  картинки
 
 
foreach($i_m as $ls){
  
 $sourcecode= file_get_contents('http:'.$ls['url']);
 
	$fl = preg_replace('/\s/','',preg_replace('/[,;]/','',$ls['nam'])).'.jpg';
	 $patch = $patch_y.$fl;
	 
	 
	 $savefile = fopen($patch, 'w++');
        fwrite($savefile, $sourcecode);
       fclose($savefile);
     
}
echo 'all';
 
 
 
 function file_get_contents_curl2($url) {
	$ch = curl_init();
 
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Устанавливаем параметр, чтобы curl возвращал данные, вместо того, чтобы выводить их в браузер.
	curl_setopt($ch, CURLOPT_URL, $url);
//	curl_setopt($ch,CURLOPT_TIMEOUT,5000); 
	//curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
	//curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; YandexAccessibilityBot/3.0; +http://yandex.com/bots)');
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');
	$dat_ = curl_exec($ch);
	curl_close($ch);
 
	return $dat_;
}