Помогите связать php simple html dom parser с curl.
Написал простенький парсер изображений на основе PHP Simple HTML DOM Parser
Парсер по url перекачивает картинки к себе на сервер. Но есть одно но, в документации написано:
К сожалению, file_get_html загружает страницы обычным file_get_contents. Это значит если хостер, выставил в php.ini allow_url_fopen = false (т.е. запретил удаленно открывать файлы), то загрузить что-то удаленно, не получится. Да и серьезные веб сайты таким способом парсить не стоит, лучше использовать CURL с поддержкой proxy и ssl. Однако для наших опытов, вполне хватит и file_get_html.
Там советуют использовать в связке с cURL.
Вот мой код парсинга.
<?php
require_once 'simple_html_dom.php';
// поисковый URL
$url = 'https://сайт.org/ссылка'
$n = 200;
// загружаем данный URL
$data = file_get_html($url);
// очищаем страницу от лишних данных
foreach($data->find('script,link,comment') as $tmp)$tmp->outertext = '';
// находим все изображения на странице
if(count($data->find('div#all img'))){
$i = 1;
foreach($data->find('div#all img') as $img){
Ну и тут уже сам код парсинга.
if($i>$n)break; // выходим из цикла если скачали достаточно фотографий
}
}
$data->clear();// подчищаем за собой
unset($data);
?>
Как к этому коду привязать cURL, т.е. чтобы в дальнейшем можно было использоваться $url и $data в PHP Simple HTML DOM Parser ?
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://сайт.org/ссылка');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_REFERER,'https://сайт.org');
$url = curl_exec($curl);
curl_close($curl);