PHP Парсер. Как сделать функцию для извлечения текста по заданной ссылке?

Я делаю парсер на PHP который должен копировать все публикации с сайта и отображать эту информацию на моем сайте (это не кража контента, с владельцем сайта я договорился)!

Я уже написал код который копирует список публикаций на главной странице (заголовок, фото и короткий текст), теперь мне нужно парсить содержимое каждой публикации, для этого я начал парсить ссылки на все публикации (на главной странице сайта). Сейчас мне нужно написать функцию которая будет парсить содержимое каждой публикации по этим ссылками. Покажите пожалуйста на примере как парсить текст который находится внутри каждой ссылки!
  • Вопрос задан
  • 1718 просмотров
Пригласить эксперта
Ответы на вопрос 2
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
Есть хорошая библиотека simple_html_dom почитай документацию много по ней иноформации.
Пример моего кода:
$html = new simple_html_dom();
            $html->load_file($_GET['go']);
            $name = $html->find('h2');
            $description = $html->find('div');    
            $video = $html->find('iframe[width=770]'); 
            $video = $text = preg_replace('/.*\/embed\/(.+)/i', 'https://www.youtube.com/watch?v=$1', $video[0]->src) ;
            $description = replace($description[$_GET['id']]->xmltext) ;
            $description = preg_replace('/<!.*>.*/is', '', $description) ;
            $spoilers = $html->find('div.uSpoilerText') ;
            $spoiler = '' ;
            foreach($spoilers AS $k => $post){
                $text = replace($post->xmltext) ;
                preg_match_all("/<!--usn\(\=(.*)\)-->/i", $text, $title);
                $text = preg_replace('/<!--ust-->/i', '', $text) ;
                $text = preg_replace('/<!--usn\(\=(.*)\)-->/i', '', $text) ;
                $text = preg_replace('/<!--\/ust-->/i', '[/spoiler]', $text) ;
                    //echo $k . ' -> ' . $post->xmltext . '<hr /><br />' ;
                $spoiler .= '[spoiler title="' . $title[1][0] . '"]' . $text . "\n\n" ;
            }
            
            $description = '[b]Название:[/b] [u]' . $name[0]->plaintext . '[/u] скачать торрент' . $description . $spoiler . $video ;
            //$file->meta_description = $title . ' скачать с торрента бесплатно в хорошем качестве' ; 
            //$file->runame = $name[0]->plaintext ;
            $file->description = $description ;
        }
        $groups = groups::load_ini(); // загружаем массив групп

        $form = new form(new url);
        $form->text('name', __('Название файла') . ' *', isset($name[0]->plaintext) ? $name[0]->plaintext : $file->runame);
        $form->text('link_name', __('Доступен по адресу'), $file->name);
        $form->textarea('description', __('Описание'), $file->description);
        $form->textarea('description_small', __('Краткое описание'), $file->description_small);

На $form внимания не обращай.
Пример страницы которую парсю https://manytorrents.pro/load/films/boeviki/chudo_...
Скриптом давно не пользовался поэтому этот конкретный пример может не работать к данной странице
Ответ написан
@Kirill-Gorelov
С ума с IT
Ну, все супер.
Сначала получаешь список ссылок чего хочешь спарсить.
Загоняешь это дело в массив. И потом в массиве проходишь по каждой ссылке и парсишь что тебе нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы