Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2016, 19:23   #1
igrok_by
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 13
Восклицание Помогите с парсером

День добрый пытаюсь написать парсер для сайта, но застрял на том что на первой странице у меня ссылки на последующие я собираю из в массив и нотом в цикле пытаюсь до них достучаться, но увы таблицы которая мне надо там нет. Открываю ссылку в браузере все работает. вчем дело???
PHP код:
<?php
    
include_once('lib/curl_query.php');
    
    
$html curl_get('http://www.sportstats.com/soccer/matches/');
    
$html1 substr($html,strpos($html,'<table id="todayMatches_0">'),strpos($html,'</table>'));
    
    
$Array explode'</tbody>',$html1);
    
$Array[0]= substr($Array[0],strpos($Array[0],'<tr class="table-league-header">'));
    echo
'<br>';
    for (
$q=1$q<count($Array)-1$q++){
        
$Igra explode'</tr>',$Array[$q]); 
        unset (
$Igra[count($Igra)-1]);
        
$Igra[0]= substr($Igra[0],0,strpos($Igra[0],'<th>'));
        echo (
strip_tags($Igra[0]));
        echo
'<br>';
        for (
$w=1$w<count($Igra); $w++){
            
$Temp substr($Igra[$w],strpos($Igra[$w],'<td class="table-home">'));
            
$Hom substr($Temp,0,strpos($Igra[$w],'</td>')); 
            
$URL substr($Hom,strpos($Hom,'href="')+6);
            
$URL substr($URL,0,strpos($URL,'/"'));
            
$URL 'http://www.sportstats.com'.$URL.'/#results';//Это первая ссылка

            
$Temp substr($Igra[$w],strpos($Igra[$w],'<td class="table-away">'));
            
$Away substr($Temp,0,strpos($Igra[$w],'</td>'));
            
$Hom strip_tags($Hom);
            echo 
"Дома<br>$Hom<br>$URL<br>";
            
$URL substr($Away,strpos($Away,'href="')+6);
            
$URL substr($URL,0,strpos($URL,'/"'));
            
$URL 'http://www.sportstats.com'.$URL.'/#results';//Это вторая ссылка
            
$Away strip_tags($Away);
            echo 
"На выезде<br>$Away<br>$URL<br>";
        }
        echo
'<br>';
    }
?>
Может кто поможет разобраться. Пробовал по примерам через дом загнать но там чтото ваще темный лес.
igrok_by вне форума Ответить с цитированием
Старый 16.02.2016, 10:55   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Я не могу понять что тебе нужно ?

Парсить сайт по ссылке допустим http://site.com/

А если парсер находит втутренние ссылки типа /pageA или /pageB то их тоже парсить ?

Получается такой рекурсивный парсинг, это цель ?

Попробуй замени вот эту строку

PHP код:
$html curl_get('http://www.sportstats.com/soccer/matches/'); 
Вот на эту и посмотри есть ли разница!

PHP код:
$html file_get_contents('http://www.sportstats.com/soccer/matches/'); 
У меня так работает.

Если и у тебя отработает как нужно то вот это подключение файла можно смело убирать если ты его там больше не будешь использовать!


PHP код:
include_once('lib/curl_query.php'); 
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 16.02.2016 в 11:03.
pompiduskus вне форума Ответить с цитированием
Старый 16.02.2016, 12:34   #3
igrok_by
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Я не могу понять что тебе нужно ?
Я хочу получив ссылку на команду, загрузить отдельно её статистику.
Код HTML:
 <a href="/soccer/argentina/detail/almagro-002DshSN/">Almagro</a>
Вот тег команды. Статистика находится по ссылке http://www.sportstats.com + тег + #results
Но при загрузке
PHP код:
$s=file_get_contents('http://www.sportstats.com/soccer/argentina/detail/almagro-002DshSN/#results'
В $s нет сформированной таблицы под id = #resultspos_49_0 , но в браузере если просто загрузиться по ссылке все есть.
Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Попробуй замени вот эту строку

PHP код:
$html curl_get('http://www.sportstats.com/soccer/matches/'); 
Вот на эту и посмотри есть ли разница!

PHP код:
$html file_get_contents('http://www.sportstats.com/soccer/matches/'); 
Тут разницы нет просто читал чтобы мол не забанили IP лучше там браузером представляться.
igrok_by вне форума Ответить с цитированием
Старый 16.02.2016, 12:49   #4
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Я просто не разбираюсь в спорте, ты вот про эту таблицу ?

<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 16.02.2016, 13:13   #5
igrok_by
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Я просто не разбираюсь в спорте, ты вот про эту таблицу ?

Да да её радимую
igrok_by вне форума Ответить с цитированием
Старый 16.02.2016, 13:22   #6
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Вот зайдите вот сюда. и посмотри выводит ли то что вам нужно.

http://pompiduskus2.0fees.us/imgs/test.php
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 16.02.2016, 13:25   #7
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Аааа, я наверное понял. Нету самих цифр в колонках [ 1, X, 2] ?

Я глянул, скорее всего эти данные подгружаются Ajax-ом.

<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 16.02.2016 в 13:29.
pompiduskus вне форума Ответить с цитированием
Старый 16.02.2016, 13:33   #8
igrok_by
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Вот зайдите вот сюда. и посмотри выводит ли то что вам нужно.

http://pompiduskus2.0fees.us/imgs/test.php
Вот вопрос как загрузить таблицу то.
Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Аааа, я наверное понял. Нету самих цифр в колонках [ 1, X, 2] ?

Я глянул, скорее всего эти данные подгружаются Ajax-ом.

Можно как то загрузить Страницу с отработаными скриптами и тд???

Последний раз редактировалось igrok_by; 16.02.2016 в 13:38. Причина: Добавил
igrok_by вне форума Ответить с цитированием
Старый 16.02.2016, 14:05   #9
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Скорее всегоконечно можно, нужно отслеживать запросы ajaxa и смотреть какие параметры куда передаюся. Я так по быстрому глянул.

Сходу не выдает результаты, так как не хватило параметров каких-то.


Другими словами, если правильно передать параметры в запросе то он выдаст все что нужно, возможно даже чистым JSONом.

Попробуйте отследить что от куда идет.



Вот как пример, посмотри что он выдал. Это вроже то что нужно
http://www.sportstats.com/ajax-table...yZDE3IjowfQ==/



или вот этот

http://www.sportstats.com/ajax-table...sIjJkMTciOjB9/
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 16.02.2016 в 14:09.
pompiduskus вне форума Ответить с цитированием
Старый 16.02.2016, 14:24   #10
igrok_by
Пользователь
 
Регистрация: 24.12.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Во со вторым вариантом можно и поработать. Можешь пояснить его???
igrok_by вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод нужен срочно помогите ) в течение 2 часов от Паскаля на Турбо СИ нужно помогите Жанибек Помощь студентам 14 01.04.2015 17:23
[C#] Пoмoщь с парсером JonMagon Помощь студентам 2 08.02.2012 15:44
Проблема с парсером ckopnio PHP 11 01.11.2010 17:05
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30