Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/120: Рейтинг темы: голосов - 120, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 5

Вытаскивание информации с другого сайта

02.03.2016, 18:29. Показов 22586. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Есть сторонний сайт, на котором выводится актуальные расписания предстоящих матчей. Хочу забрать себе информацию из таблицы, но не могу понять, как это сделать. сURL'ом забрал всю страницу, а как дальше из неё выбрать нужную информацию, не могу понять. Таблица обладает уникальным ID("<table id="gb-matches" class="simple gamelist ">
").
Натолкните на правильный путь новичка, всю голову уже сломал :'(
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2016, 18:29
Ответы с готовыми решениями:

Перенос информации с другого сайта
Как с помощью PHP взять кусочек информации, например цифры, с другого сайта и поместить их на свой сайт, чтобы следить на своём сайте за их...

Сбор информации с другого сайта
Привет всем.Как мне можно получить данные с другого сайта и занести их в бд. Я вообще не представляю как это сделать. Дело в том что мне...

Вставка информации с другого сайта
Добрый день. Встретился с такой проблемой, необходимо поставить информацию с Twitch. С ссылкой на картинку проблем не составило, но как...

41
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
02.03.2016, 19:17
Цитата Сообщение от Олеша Посмотреть сообщение
Натолкните на правильный путь новичка
http://php.net/manual/ru/refer... syntax.php
Прочитать все пункты по ссылке от корки до корки в хронологическом порядке, желательно 3 раза.
0
Hello Kitty
 Аватар для WhiteMind
690 / 562 / 402
Регистрация: 12.02.2016
Сообщений: 1,436
Записей в блоге: 1
02.03.2016, 19:41
http://simplehtmldom.sourceforge.net/
0
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
02.03.2016, 20:27

Не по теме:

pav1uxa, регулярки это хорошо, но для новичка жестоко.



Неплохой вариант: https://github.com/olamedia/nokogiri
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
02.03.2016, 20:33
Цитата Сообщение от insideone Посмотреть сообщение
регулярки это хорошо, но для новичка жестоко.

Не по теме:

Ну как посмотреть :) По мне так для новичка как раз будет полезнее узнать про регулярные выражения сначала. Нежели сразу в лоб применять классы для работы с DOM-документами, при этом не понимая ни DOM, ни ООП...

0
02.03.2016, 20:44

Не по теме:

Я про то что регулярки это хорошо и изучить их конечно нужно, но для парсинга - не лучший вариант. Ну в конце концов можно и XML распарсить ими, но неудобно же, что мучаться-то

0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
02.03.2016, 20:52
Цитата Сообщение от insideone Посмотреть сообщение
Я про то что регулярки это хорошо и изучить их конечно нужно, но для парсинга - не лучший вариант. Ну в конце концов можно и XML распарсить ими, но неудобно же, что мучаться-то

Не по теме:

Ну и я не спорю что для таких вещей использовать регулярные выражения - не правильно. Кстати в PHP есть встроенные классы для работы с DOM-документами - DOMDocument и SimpleXMLElement (хотя практика показывает что сторонние библиотеки удобнее, ну да не важно).

Но мы тут о "новичках" говорим. Если бы автор выложил бы скрипт, и сказал бы что "вот - почему то не работает, я хочу то-то, а он мне выводит то-то и ошибку", я бы ему указал на эти 2 класса, возможно даже пример бы привел. Но когда он даже не знает в какую сторону смотреть... Просто не люблю, когда не изучив основ языка, люди сразу кидаются сайты парсить или что-то в этом роде, поэтому так ответил...

Сначала вообще хотел отправить про strpos() и substr() отправить читать :D Да и думаю это было бы правильнее...

0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
02.03.2016, 21:30
Лучший ответ Сообщение было отмечено Олеша как решение

Решение

Цитата Сообщение от pav1uxa Посмотреть сообщение
про strpos() и substr() отправить читать
PHP
1
2
3
4
5
6
7
8
9
10
function parse($p1,$p2,$p3){
        $num1 = strpos($p1,$p2);
            if(!$num1) return 0 ;
        $num2 = substr($p1,$num1);
        return substr($num2,0,strpos($num2,$p3));
    }
        $link = file_get_contents("http://toffe.org.ua/");
    $start_teg = "<div class=osn>"; // Начало тегов от которых парсить
    $stop_teg = "<a href=index.php?id=kd>"; //До кудо парсить теги 
    echo parse($link,$start_teg,$stop_teg);
5
02.03.2016, 21:53

Не по теме:

И работать такая штука будет в разы быстрее чем регулярные выражения, DOMDocument с SimpleXML, и тем более всякие сторонние библиотеки :D

0
 Аватар для eun
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 106
08.03.2016, 21:47
Кто-нибудь помогите решить проблему кодировки для кода в посте #8
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
08.03.2016, 22:17
Цитата Сообщение от eun Посмотреть сообщение
Кто-нибудь помогите решить проблему кодировки для кода в посте #8
что с кодировкой то ? файл в кодировке Utf-8 Без bom ?
0
 Аватар для eun
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 106
09.03.2016, 05:23
Мой сайт в кодировке win-1251. Большинство сайтов с которых буду парсить в UTF-8.
Что такое bom - не знаю...
0
 Аватар для eun
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 106
12.03.2016, 15:06
Попытался использовать код из поста #8 для вывода подряд содержимого нескольких сайтов (см. ниже мой код), но при этом, как только в коде появляется четвёртый URL (строка 21), скрипт, отрабатывая второй URL, выводит ноль. Как исправить код, чтобы ноль не выводился?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
function parse($p1,$p2,$p3) {
        $num1 = strpos($p1,$p2);
            if(!$num1) return 0;
        $num2 = substr($p1,$num1);
        return substr($num2,0,strpos($num2,$p3));
    }
    $start_teg = "<table>";
        $stop_teg = "</table>";
    
    $link = file_get_contents("http://url1/");
    echo parse($link,$start_teg,$stop_teg);
 
    $link = file_get_contents("http://url2/");
    echo parse($link,$start_teg,$stop_teg);
 
    $link = file_get_contents("http://url3/");
    echo parse($link,$start_teg,$stop_teg);
 
    $link = file_get_contents("http://url4/");
    echo parse($link,$start_teg,$stop_teg);
 
?>
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
12.03.2016, 15:35
Цитата Сообщение от eun Посмотреть сообщение
if(!$num1) return 0;
Вот ваш 0.
Цитата Сообщение от eun Посмотреть сообщение
http://url4/
вот в этой ссылку не может найти тег <table>
1
 Аватар для eun
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 106
12.03.2016, 19:59
Тег <table> там есть, что и удивляет!

Добавлено через 9 минут
Хотя, проверю ещё раз и отпишусь.

Добавлено через 4 часа 1 минуту
Да, действительно, дело было в <table>, но при указании дивов - появляется сообщение об ошибке.
Получается с дивами в начальном и конечном тегах данный скрипт не работает?
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
12.03.2016, 21:29
Цитата Сообщение от eun Посмотреть сообщение
Получается с дивами в начальном и конечном тегах данный скрипт не работает?
Работает.

Добавлено через 46 секунд
Цитата Сообщение от eun Посмотреть сообщение
Получается с дивами в начальном и конечном тегах данный скрипт не работает?
У меня же с дивами работает , посмотрите
Цитата Сообщение от Azdeman Посмотреть сообщение
PHP
1
2
3
4
$link = file_get_contents("http://toffe.org.ua/");
$start_teg = "<div class=osn>"; // Начало тегов от которых парсить
$stop_teg = "<a href=index.php?id=kd>"; //До кудо парсить теги 
echo parse($link,$start_teg,$stop_teg);
Добавлено через 39 минут
Цитата Сообщение от eun Посмотреть сообщение
но при указании дивов - появляется сообщение об ошибке.
И , что за ошибка. Создать тему для этого новую. Там и обсудим.
1
 Аватар для eun
2 / 2 / 0
Регистрация: 27.01.2013
Сообщений: 106
13.03.2016, 20:14
Не могу спарсить, т.к. одинаковое сочетание тегов встречается несколько раз на одной странице. Что посоветуете?
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
13.03.2016, 20:18
Цитата Сообщение от eun Посмотреть сообщение
Что посоветуете?
Библиотеки использовать, Сurl...
0
wq
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
13.03.2016, 22:59
Не пойму в чем "жесткость" для новичка освоить регулярные выражения. Прочитать придется меньше чем будет написано нерабочих костылей из str_pos или domDocument.
конкретно по вопросу:
PHP
1
2
3
4
5
6
7
if(preg_match_all('~<table\s+id="gb-matches"\s+class="simple gamelist.*</table>~siuU', $str,$matches)){
            echo '<pre>';
            var_dump($matches);
            echo '</pre>';
        }else{
            echo 'oblom';
        }
0
Software Engineer
 Аватар для Custos
328 / 328 / 54
Регистрация: 23.09.2014
Сообщений: 976
14.03.2016, 07:21
Олеша, гуглишь phpQuery, делаешь по примерам парсер, радуешься.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2016, 07:21
Помогаю со студенческими работами здесь

Чтение информации с другого сайта
Доброго времени суток, уважаемые. У форума есть своя таблица рейтингов участников. Хочу чтобы в информации слева в посте у участника...

Шаблон получения информации с другого сайта
Такой вопрос, не получается найти шаблон, который применяется в случае, если нужно в мое приложение(ASP.NET MVC) добавить данные с сайта в...

Вытаскивание информации из базы
Нужно вытащит текст из базы и вывести на экран. Написал код, вроде бы работает если бы не одно но. На экране текст отображается в виде...

Вытаскивание информации из другой базы данных
Доброго времени суток. Возник такой вопрос. Сайт работает на joomla, и нужно в модуле сделать обращение к другой базе данных, к которой...

вытаскивание информации из программы и запись на фтп в файл
вытаскивание информации из программы и запись на фтп в файл кто может такое сделать ? есть программа вот то что обведено красным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru