За последние 24 часа нас посетили 51749 программистов и 1768 роботов. Сейчас ищут 807 программистов ...

Как пропарсить несколько страниц сайта сразу?

Тема в разделе "PHP для новичков", создана пользователем sharunm, 18 ноя 2014.

  1. sharunm

    sharunm Активный пользователь

    С нами с:
    16 ноя 2014
    Сообщения:
    58
    Симпатии:
    0
    Я уже написал парсинг одной страницы. В данном случае для тренировки, я выбрал раздел http://relines.ru/catalog/chery-m11-481-engine-assy, т.к. здесь много однородной информации (коды деталей и наименования) и есть пагинация страниц. Задача пропарсить все "пагин"-страницы от 1 до 7. Я использую известную библиотечку simple_html_dom.php.

    Вот код парсинга одной страницы:
    Адрес парсинга не говорю, потому что, чувствую, участники форума накидают мне туда деталей )))). Я сделал также страничку с формой ввода страницы и прочей инфы, а также возможность отменить последние записи.

    Код (Text):
    1.  
    2. <?php
    3.  
    4. // example of how to use advanced selector features
    5. include('config.php');
    6. include('simple_html_dom.php');
    7. //$page_where_parse='http://relines.ru/catalog/chery-amulet/';
    8. $page_where_parse=$_POST['page_adress'];
    9. $html = file_get_html($page_where_parse);
    10.  
    11. //УСЛОВНЫЕ КОНСТАНТЫ. СЮДА ЖЕ ПЕРЕДАЮТСЯ ДАННЫЕ С ФОРМЫ
    12. $count_pars = count ($html->find('p.b-catalog__item__sku a'));
    13. //$car='CHERY';
    14. //$model='Amulet';
    15. //$rusname='Чери Амулет';
    16. //$prefix='body';
    17.  
    18. $car=$_POST['car'];
    19. $model=$_POST['model'];
    20. $rusname=$_POST['rusname'];
    21. $prefix=$_POST['prefix'];
    22.  
    23. $td_adress_folder='/katalog/'.$car.'/'.$model.'/'.$prefix.'/';
    24.  
    25. //проверяю скрипт на ошибки. Если выводится это, то ошибок в синтаксисе нет, по идее.
    26. //echo 'it works <br/>'.$count_pars.'<br/>';
    27.  
    28. //МАССИВЫ СОДЕРЖАНИЕ САЙТА
    29. $element_article=$html->find('p.b-catalog__item__sku a');
    30. $element_name=$html->find('p.b-catalog__item__t a');
    31. $td_adress_arr = array();
    32. $td_content_arr = array();
    33. $td_keywords_arr=array();
    34. $td_description_arr=array();
    35. $td_title_arr=array();
    36. $td_content_arr=array();
    37.  
    38.  
    39.  
    40. ?>
    41.  
    42. <html>
    43. <head>
    44. <title>Парсер RELINES.RU</title>
    45. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    46. <link href="/css/base.css" rel="stylesheet">
    47.     <!-- Bootstrap -->
    48.     <link href="/css/bootstrap.css" rel="stylesheet">
    49.       <link href="/css/bootstrap-theme.css" rel="stylesheet">
    50.  
    51.     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    52.     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    53.     <!--[if lt IE 9]>
    54.       <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    55.       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    56.     <![endif]-->
    57.    
    58.       <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    59.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    60.     <!-- Include all compiled plugins (below), or include individual files as needed -->
    61.     <script src="/js/bootstrap.min.js"></script>
    62.     <script type="text/javascript" src="/js/carousel.js"></script>
    63. </head>
    64. <body>
    65.  
    66.  
    67. <?php
    68.  
    69. for($i = 0; $i < $count_pars; $i++)
    70.   {
    71.  
    72. //CONTENT
    73.  
    74. $td_content_arr[$i]='НЕКИЙ КОНТЕНТ';
    75.  
    76. //CONTENT
    77.  
    78. //ПОДГОТОВКА ПЕРЕМЕННЫХ
    79. global $car, $model, $td_adress_folder;
    80. $td_keywords_arr[$i]=$element_name[$i]->innertext.' '.$cars_arr[$i].' '.$models_arr[$i].', '.$element_article[$i]->innertext;
    81. $td_adress_arr[$i]=$td_adress_folder.$element_article[$i]->innertext.'/';
    82. $td_title_arr[$i]=$element_name[$i]->innertext.' ('.$rusname.') '.$element_article[$i]->innertext;
    83. $td_description_arr[$i]='Магазин-склад запчастей. Автозапчасти для китайских автомобилей в наличии и на заказ. У нас Вы можете купить '.$element_name[$i]->innertext.' '.$element_article[$i]->innertext.' в розницу по оптовой цене. Доставка запчастей по всей России.';
    84.  
    85. //ВЫВОД ДАННЫХ
    86.  
    87. //echo '<tr><td>'.$element_article[$i]->innertext.'</td><td>'.$element_name[$i]->innertext.'</td><td>'.$car.'</td><td>'.$model.'</td><td>'.$td_adress_arr[$i].'</td><td>'.$td_title_arr[$i].'</td></tr>';
    88.  
    89. //запись в бд.
    90. mysql_query("
    91. INSERT INTO `parts_temp` (`tb_parts_name`, `tb_parts_code`, `tb_cars_manufacture`, `tb_cars_model`, `td_adress`, `td_title`, `td_keywords`, `td_description`, `td_content`)
    92. VALUES ('{$element_name[$i]->innertext}', '{$element_article[$i]->innertext}', '{$car}', '{$model}', '{$td_adress_arr[$i]}', '{$td_title_arr[$i]}','{$td_keywords_arr[$i]}', '{$td_description_arr[$i]}', '{$td_content_arr[$i]}')");
    93.  
    94. }
    95. ?>
    96. <div class="container container-fluid">
    97. <h1>Парсинг страницы </h1>
    98. <p><?php echo $page_where_parse; ?></p>
    99. <p>Действие выполнено успешно. Добавлено записей: <?php echo $count_pars; ?></p>
    100. <p><a href="/pars-rlns.html"><b>Парсить новую страницу</b></a></p>
    101. <h2>Желаете отменить действие?</h2>
    102. <form  class="form" role="form" name="form1" action="/delete-rlns.php" method="post">
    103. <div class="form-group">
    104.     <div class="input-group">
    105.       <label class="sr-only" for="delete-rows">Удалить последние записи в кол-ве:</label>
    106.       <div class="input-group-addon"><span class="glyphicon glyphicon-list"></span></div>
    107.       <input type="text" class="form-control" id="delete-rows" name="delete-rows" value="<?php  echo $count_pars; ?>">
    108.    
    109.   </div>
    110.  
    111.     <div class="input-group">
    112.       <label class="sr-only" for="delete-model">Где модель:</label>
    113.       <div class="input-group-addon"><span class="glyphicon glyphicon-list"></span></div>
    114.       <input type="text" class="form-control" id="delete-model" name="delete-model" value="<?php  echo $model; ?>">
    115.     </div>
    116.  
    117.  
    118.  <button type="submit" class="btn btn-default">Удалить <span class="glyphicon glyphicon-remove"></button>
    119. </div>
    120. </form>
    121. </div>
    122. </body>
    123. </html>
    Я решил пропарсить все семь страниц сразу. Начинаю писать постепенно, тестирую каждый шаг, но вот, почти сразу запнулся. В комментариях в коде есть пояснения. Подскажите таблетку и как лучше адаптировать код выше под описанную задачу (обойти все страницы). Спасибо.

    Код (Text):
    1.  
    2. <html>
    3. <head>
    4. <title>Парсер RELINES.RU</title>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    6. <link href="/css/base.css" rel="stylesheet">
    7.     <!-- Bootstrap -->
    8.     <link href="/css/bootstrap.css" rel="stylesheet">
    9.       <link href="/css/bootstrap-theme.css" rel="stylesheet">
    10.  
    11.     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    12.     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    13.     <!--[if lt IE 9]>
    14.       <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    15.       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    16.     <![endif]-->
    17.    
    18.       <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    19.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    20.     <!-- Include all compiled plugins (below), or include individual files as needed -->
    21.     <script src="/js/bootstrap.min.js"></script>
    22.     <script type="text/javascript" src="/js/carousel.js"></script>
    23. </head>
    24. <body>
    25. <div class="container container-fluid">
    26. <table class="table table-bordered table-striped">
    27.  
    28.  
    29.  
    30. <?php
    31. //првоеряем валидность кода. Если будет показываться, то в php-коде ошибки нет
    32. echo 'code is valid<br/>';
    33.  
    34. // example of how to use advanced selector features
    35. include('../config.php');
    36. include('../simple_html_dom.php');
    37.  
    38. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    39.  
    40. $page_group=array();
    41. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    42. $page_group[0]=$parse_start_page;
    43. $html = file_get_html($page_group[0]);
    44. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    45. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    46.  
    47. for($i = 0; $i <= $page_count; $i++)
    48.   {
    49.  
    50. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    51. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    52.  
    53. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    54. //$html = file_get_html($page_group[$i]);
    55.  
    56. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО, ЕСЛИ СТРОЧКУ ВЫШЕ ОСТАВИТЬ В КОММЕНТАРИИ.
    57. echo $page_group[$i].'<br/>';
    58.  
    59. //А ВОТ ЕСЛИ ПОПЫТАТЬСЯ ПЕРЕНЕСТИ ИЗ ПАРСИНГА КОД В ЦИКЛ ВНУТРИ ЦИКЛА, ТО ПОЛУЧАЕТСЯ ХРЕНЬ КАКАЯ-ТО
    60.  
    61. }
    62.  
    63.  
    64. ?>
    65.  
    66.  
    67.  
    68.  
    69.  
    70. </table>
    71. </div>
    72. </body>
    73. </html>
     
  2. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Можно адреса парсить по очереди в цикле и сохранять результат в массив например
     
  3. sharunm

    sharunm Активный пользователь

    С нами с:
    16 ноя 2014
    Сообщения:
    58
    Симпатии:
    0
    Если так записать, то, на запрос echo в теле цикла ничего не выводит тоже

    Код (Text):
    1.  
    2. <?php
    3. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    4. echo 'code is valid<br/>';
    5.  
    6. // example of how to use advanced selector features
    7. include('../config.php');
    8. include('../simple_html_dom.php');
    9.  
    10. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    11.  
    12. $page_group=array();
    13. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    14. $page_group[0]=$parse_start_page;
    15. $html=array();
    16. $html[0] = file_get_html($page_group[0]);
    17. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    18. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    19. $element_article=$html->find('p.b-catalog__item__sku a');
    20.  
    21. for($i = 0; $i <= $page_count; $i++)
    22.   {
    23.  
    24. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    25. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    26.  
    27. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    28. $html[$i] = file_get_html($page_group[$i]);
    29.  
    30. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    31. echo $page_group[$i].'<br/>';
    32.  
    33. }
    34.  
    35.  
    36. ?>
    А вот так, если закомментировать строчку, то на запрос echo выводится список страниц, которые я буду парсить

    Код (Text):
    1.  
    2. <html>
    3. <head>
    4. <title>Парсер RELINES.RU</title>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    6. <link href="/css/base.css" rel="stylesheet">
    7.     <!-- Bootstrap -->
    8.     <link href="/css/bootstrap.css" rel="stylesheet">
    9.       <link href="/css/bootstrap-theme.css" rel="stylesheet">
    10.  
    11.     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    12.     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    13.     <!--[if lt IE 9]>
    14.       <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    15.       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    16.     <![endif]-->
    17.    
    18.       <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    19.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    20.     <!-- Include all compiled plugins (below), or include individual files as needed -->
    21.     <script src="/js/bootstrap.min.js"></script>
    22.     <script type="text/javascript" src="/js/carousel.js"></script>
    23. </head>
    24. <body>
    25. <div class="container container-fluid">
    26. <table class="table table-bordered table-striped">
    27.  
    28.  
    29.  
    30. <?php
    31. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    32. echo 'code is valid<br/>';
    33.  
    34. // example of how to use advanced selector features
    35. include('../config.php');
    36. include('../simple_html_dom.php');
    37.  
    38. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    39.  
    40. $page_group=array();
    41. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    42. $page_group[0]=$parse_start_page;
    43. $html=array();
    44. $html = file_get_html($page_group[0]);
    45. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    46. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    47. $element_article=$html->find('p.b-catalog__item__sku a');
    48.  
    49. for($i = 0; $i <= $page_count; $i++)
    50.   {
    51.  
    52. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    53. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    54.  
    55. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    56. //$html[$i+1] = file_get_html($page_group[$i]);
    57.  
    58. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    59. echo $page_group[$i].'<br/>';
    60.  
    61. }
    62.  
    63.  
    64. ?>
    65.  
    66.  
    67.  
    68.  
    69.  
    70. </table>
    71. </div>
    72. </body>
    73. </html>
    Подскажите, в чем здесь ошибка?

    Добавлено спустя 16 минут 58 секунд:
    Для metadon. Вот, я как бы так и делаю, просто пока коряво выходит. Я тут часть кода удалил. а так бы показал свои потуги. В общем. я во внутрь цикла помещал еще один цикл. Но как-то начальные знания не позволили правильно все записать, да и конструкция какой-то корявой. Вот не могу понять, почему при раскомментировании echo выводит не все адреса.

    Попробовал такую конструкцию:
    Код (Text):
    1.  
    2. <html>
    3. <head>
    4. <title>Парсер RELINES.RU</title>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    6. <link href="/css/base.css" rel="stylesheet">
    7.     <!-- Bootstrap -->
    8.     <link href="/css/bootstrap.css" rel="stylesheet">
    9.       <link href="/css/bootstrap-theme.css" rel="stylesheet">
    10.  
    11.     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    12.     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    13.     <!--[if lt IE 9]>
    14.       <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    15.       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    16.     <![endif]-->
    17.    
    18.       <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    19.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    20.     <!-- Include all compiled plugins (below), or include individual files as needed -->
    21.     <script src="/js/bootstrap.min.js"></script>
    22.     <script type="text/javascript" src="/js/carousel.js"></script>
    23. </head>
    24. <body>
    25. <div class="container container-fluid">
    26. <table class="table table-bordered table-striped">
    27.  
    28.  
    29.  
    30. <?php
    31. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    32. echo 'code is valid<br/>';
    33.  
    34. // example of how to use advanced selector features
    35. include('../config.php');
    36. include('../simple_html_dom.php');
    37.  
    38. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    39.  
    40. $page_group=array();
    41. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    42. $page_group[0]=$parse_start_page;
    43. $html=array();
    44. $html = file_get_html($page_group[0]);
    45. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    46. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    47. $element_article=$html->find('p.b-catalog__item__sku a');
    48. $count_pars = count ($html->find('p.b-catalog__item__sku a'));
    49.  
    50. for($i = 0; $i <= $page_count; $i++)
    51.   {
    52.  
    53. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    54. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    55.  
    56. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    57. $html = file_get_html($page_group[$i]);
    58.  
    59. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    60. echo $page_group[$i].'<br/><br/>';
    61.  
    62. for ($j=0; $j<=$count_pars; $j++) {
    63.  
    64. echo $element_article[$i]->innertext.'<br/>';
    65.  
    66. }
    67.  
    68. }
    69.  
    70.  
    71. ?>
    72.  
    73.  
    74.  
    75.  
    76.  
    77. </table>
    78. </div>
    79. </body>
    80. </html>
    Получил такой результат:

    Код (Text):
    1.  
    2. code is valid
    3. http://relines.ru/catalog/lifan-smily-engine-and-transmission/
    4.  
    5. LF479Q1-1025015A
    6. LF479Q1-1025015A
    7. LF479Q1-1025015A
    8. LF479Q1-1025015A
    9. LF479Q1-1025015A
    10. LF479Q1-1025015A
    11. LF479Q1-1025015A
    12. LF479Q1-1025015A
    13. LF479Q1-1025015A
    14. LF479Q1-1025015A
    15. LF479Q1-1025015A
    16. LF479Q1-1025015A
    17. LF479Q1-1025015A
    18. LF479Q1-1025015A
    19. LF479Q1-1025015A
    20. LF479Q1-1025015A
    21. LF479Q1-1025015A
    22. LF479Q1-1025015A
    23. LF479Q1-1025015A
    24. LF479Q1-1025015A
    25. LF479Q1-1025015A
    26. LF479Q1-1025015A
    27. LF479Q1-1025015A
    28. LF479Q1-1025015A
    29. LF479Q1-1025015A
    30. LF479Q1-1025015A
    31. LF479Q1-1025015A
    32. LF479Q1-1025015A
    33. LF479Q1-1025015A
    34. LF479Q1-1025015A
    35. LF479Q1-1025015A
    36. LF479Q1-1025015A
    37. LF479Q1-1025015A
    38. LF479Q1-1025015A
    39. LF479Q1-1025015A
    40. LF479Q1-1025015A
    41. LF479Q1-1025015A
    42. LF479Q1-1025015A
    43. LF479Q1-1025015A
    44. LF479Q1-1025015A
    45. LF479Q1-1025015A
    46. LF479Q1-1025015A
    47. LF479Q1-1025015A
    48. LF479Q1-1025015A
    49. LF479Q1-1025015A
    50. LF479Q1-1025015A
    51. LF479Q1-1025015A
    52. LF479Q1-1025015A
    53. LF479Q1-1025015A
    54. LF479Q1-1025015A
    55. LF479Q1-1025015A
    56. LF479Q1-1025015A
    57. LF479Q1-1025015A
    58. LF479Q1-1025015A
    59. LF479Q1-1025015A
    60. LF479Q1-1025015A
    61. LF479Q1-1025015A
    62. LF479Q1-1025015A
    63. LF479Q1-1025015A
    64. LF479Q1-1025015A
    65. LF479Q1-1025015A
    66. http://relines.ru/catalog/lifan-smily-engine-and-transmission/page_2
    67.  
    68. LF481Q1-1701334A
    69. LF481Q1-1701334A
    70. LF481Q1-1701334A
    71. LF481Q1-1701334A
    72. LF481Q1-1701334A
    73. LF481Q1-1701334A
    74. LF481Q1-1701334A
    75. LF481Q1-1701334A
    76. LF481Q1-1701334A
    77. LF481Q1-1701334A
    78. LF481Q1-1701334A
    79. LF481Q1-1701334A
    80. LF481Q1-1701334A
    81. LF481Q1-1701334A
    82. LF481Q1-1701334A
    83. LF481Q1-1701334A
    84. LF481Q1-1701334A
    85. LF481Q1-1701334A
    86. LF481Q1-1701334A
    87. LF481Q1-1701334A
    88. LF481Q1-1701334A
    89. LF481Q1-1701334A
    90. LF481Q1-1701334A
    91. LF481Q1-1701334A
    92. LF481Q1-1701334A
    93. LF481Q1-1701334A
    94. LF481Q1-1701334A
    95. LF481Q1-1701334A
    96. LF481Q1-1701334A
    97. LF481Q1-1701334A
    98. LF481Q1-1701334A
    99. LF481Q1-1701334A
    100. LF481Q1-1701334A
    101. LF481Q1-1701334A
    102. LF481Q1-1701334A
    103. LF481Q1-1701334A
    104. LF481Q1-1701334A
    105. LF481Q1-1701334A
    106. LF481Q1-1701334A
    107. LF481Q1-1701334A
    108. LF481Q1-1701334A
    109. LF481Q1-1701334A
    110. LF481Q1-1701334A
    111. LF481Q1-1701334A
    112. LF481Q1-1701334A
    113. LF481Q1-1701334A
    114. LF481Q1-1701334A
    115. LF481Q1-1701334A
    116. LF481Q1-1701334A
    117. LF481Q1-1701334A
    118. LF481Q1-1701334A
    119. LF481Q1-1701334A
    120. LF481Q1-1701334A
    121. LF481Q1-1701334A
    122. LF481Q1-1701334A
    123. LF481Q1-1701334A
    124. LF481Q1-1701334A
    125. LF481Q1-1701334A
    126. LF481Q1-1701334A
    127. LF481Q1-1701334A
    128. LF481Q1-1701334A
    129. http://relines.ru/catalog/lifan-smily-engine-and-transmission/page_3
    130.  
    131. LF479Q1-1025100A
    132. LF479Q1-1025100A
    133. LF479Q1-1025100A
    134. LF479Q1-1025100A
    135. LF479Q1-1025100A
    136. LF479Q1-1025100A
    137. LF479Q1-1025100A
    138. LF479Q1-1025100A
    139. LF479Q1-1025100A
    140. LF479Q1-1025100A
    141. LF479Q1-1025100A
    142. LF479Q1-1025100A
    143. LF479Q1-1025100A
    144. LF479Q1-1025100A
    145. LF479Q1-1025100A
    146. LF479Q1-1025100A
    147. LF479Q1-1025100A
    148. LF479Q1-1025100A
    149. LF479Q1-1025100A
    150. LF479Q1-1025100A
    151. LF479Q1-1025100A
    152. LF479Q1-1025100A
    153. LF479Q1-1025100A
    154. LF479Q1-1025100A
    155. LF479Q1-1025100A
    156. LF479Q1-1025100A
    157. LF479Q1-1025100A
    158. LF479Q1-1025100A
    159. LF479Q1-1025100A
    160. LF479Q1-1025100A
    161. LF479Q1-1025100A
    162. LF479Q1-1025100A
    163. LF479Q1-1025100A
    164. LF479Q1-1025100A
    165. LF479Q1-1025100A
    166. LF479Q1-1025100A
    167. LF479Q1-1025100A
    168. LF479Q1-1025100A
    169. LF479Q1-1025100A
    170. LF479Q1-1025100A
    171. LF479Q1-1025100A
    172. LF479Q1-1025100A
    173. LF479Q1-1025100A
    174. LF479Q1-1025100A
    175. LF479Q1-1025100A
    176. LF479Q1-1025100A
    177. LF479Q1-1025100A
    178. LF479Q1-1025100A
    179. LF479Q1-1025100A
    180. LF479Q1-1025100A
    181. LF479Q1-1025100A
    182. LF479Q1-1025100A
    183. LF479Q1-1025100A
    184. LF479Q1-1025100A
    185. LF479Q1-1025100A
    186. LF479Q1-1025100A
    187. LF479Q1-1025100A
    188. LF479Q1-1025100A
    189. LF479Q1-1025100A
    190. LF479Q1-1025100A
    191. LF479Q1-1025100A
    192. http://relines.ru/catalog/lifan-smily-engine-and-transmission/page_4
    193.  
    194. LF479Q1-1306100A
    195. LF479Q1-1306100A
    196. LF479Q1-1306100A
    197. LF479Q1-1306100A
    198. LF479Q1-1306100A
    199. LF479Q1-1306100A
    200. LF479Q1-1306100A
    201. LF479Q1-1306100A
    202. LF479Q1-1306100A
    203. LF479Q1-1306100A
    204. LF479Q1-1306100A
    205. LF479Q1-1306100A
    206. LF479Q1-1306100A
    207. LF479Q1-1306100A
    208. LF479Q1-1306100A
    209. LF479Q1-1306100A
    210. LF479Q1-1306100A
    211. LF479Q1-1306100A
    212. LF479Q1-1306100A
    213. LF479Q1-1306100A
    214. LF479Q1-1306100A
    215. LF479Q1-1306100A
    216. LF479Q1-1306100A
    217. LF479Q1-1306100A
    218. LF479Q1-1306100A
    219. LF479Q1-1306100A
    220. LF479Q1-1306100A
    221. LF479Q1-1306100A
    222. LF479Q1-1306100A
    223. LF479Q1-1306100A
    224. LF479Q1-1306100A
    225. LF479Q1-1306100A
    226. LF479Q1-1306100A
    227. LF479Q1-1306100A
    228. LF479Q1-1306100A
    229. LF479Q1-1306100A
    230. LF479Q1-1306100A
    231. LF479Q1-1306100A
    232. LF479Q1-1306100A
    233. LF479Q1-1306100A
    234. LF479Q1-1306100A
    235. LF479Q1-1306100A
    236. LF479Q1-1306100A
    237. LF479Q1-1306100A
    238. LF479Q1-1306100A
    239. LF479Q1-1306100A
    240. LF479Q1-1306100A
    241. LF479Q1-1306100A
    242. LF479Q1-1306100A
    243. LF479Q1-1306100A
    244. LF479Q1-1306100A
    245. LF479Q1-1306100A
    246. LF479Q1-1306100A
    247. LF479Q1-1306100A
    248. LF479Q1-1306100A
    249. LF479Q1-1306100A
    250. LF479Q1-1306100A
    251. LF479Q1-1306100A
    252. LF479Q1-1306100A
    253. LF479Q1-1306100A
    254. LF479Q1-1306100A
    Добавлено спустя 4 минуты 13 секунд:
    Вернее, вот код:
    Код (Text):
    1.  
    2. <html>
    3. <head>
    4. <title>Парсер RELINES.RU</title>
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    6. <link href="/css/base.css" rel="stylesheet">
    7.     <!-- Bootstrap -->
    8.     <link href="/css/bootstrap.css" rel="stylesheet">
    9.       <link href="/css/bootstrap-theme.css" rel="stylesheet">
    10.  
    11.     <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    12.     <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    13.     <!--[if lt IE 9]>
    14.       <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    15.       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    16.     <![endif]-->
    17.    
    18.       <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    19.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    20.     <!-- Include all compiled plugins (below), or include individual files as needed -->
    21.     <script src="/js/bootstrap.min.js"></script>
    22.     <script type="text/javascript" src="/js/carousel.js"></script>
    23. </head>
    24. <body>
    25. <div class="container container-fluid">
    26. <table class="table table-bordered table-striped">
    27.  
    28.  
    29.  
    30. <?php
    31. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    32. echo 'code is valid<br/>';
    33.  
    34. // example of how to use advanced selector features
    35. include('../config.php');
    36. include('../simple_html_dom.php');
    37.  
    38. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    39.  
    40. $page_group=array();
    41. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    42. $page_group[0]=$parse_start_page;
    43. $html=array();
    44. $html = file_get_html($page_group[0]);
    45. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    46. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    47. $element_article=$html->find('p.b-catalog__item__sku a');
    48. $count_pars = count ($html->find('p.b-catalog__item__sku a'));
    49.  
    50. for($i = 0; $i <= $page_count; $i++)
    51.   {
    52.  
    53. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    54. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    55.  
    56. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    57. $html = file_get_html($page_group[$i]);
    58.  
    59. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    60. echo $page_group[$i].'<br/><br/>';
    61.  
    62. for ($j=0; $j<=$count_pars; $j++) {
    63.  
    64. echo $element_article[$j]->innertext.'<br/>';
    65.  
    66. }
    67.  
    68. }
    69.  
    70.  
    71. ?>
    72.  
    73.  
    74.  
    75.  
    76.  
    77. </table>
    78. </div>
    79. </body>
    80. </html>
    А вот результат:
    Код (Text):
    1.  
    2. code is valid
    3. http://relines.ru/catalog/lifan-smily-engine-and-transmission/
    4.  
    5. LF479Q1-1025015A
    6. LF481Q1-1701334A
    7. LF479Q1-1025100A
    8. LF479Q1-1306100A
    9. LF479Q1-3707800A
    10. LF479Q1-3707000A
    11. LF479Q1-1003015A
    12. LF481Q3-3802100C
    13. LF479Q1-1003203A
    14. LF479Q1-3802100A
    15. LBA1132150B1
    16. LF479Q1-1025022A
    17. LF479Q1-1025023A
    18. LF479Q1-1025021A
    19. LBA3705100B1
    20. LF481Q1-1702160A
    21. LBA3616100B1
    22. LF479Q1-1005022A
    23. LF481Q1-1701030A
    24. LBA3612600B1
    25. LBA3612300
    26. LF479Q3-1307100A-1
    27. LF479Q1-1007017A
    28. LF479Q1-3818100A
    29. LF479Q1-1007018A
    30. LF479Q1-1006011A
    31. LBA3612300B1
    32. LF481Q1-1701330A
    33. LF479Q1-1003300A
    34. LF479Q1-1014100A
    35. LF479Q1-1008014A
    36. LF479Q1-1003012A
    37. LF481Q1-3802100B1
    38. q1840620
    39. LF479Q1-1025025A
    40. LF479Q1-1005019A
    41. LF479Q1-1003013A
    42. LBA1132150
    43. LBA3612500
    44. LBA1132160B1
    45. LF479Q1-1307015A
    46. LBA3612600
    47. LF479Q1-1004200A
    48. LF479Q3-3701190A
    49. LBA1132160
    50. LF479Q1-1008203A
    51. LF479Q1-1007011A
    52. LF481Q1-3729100A
    53. LF479Q3-3708130A
    54. LF479Q1-1009100A
    55. LBA1130310B1
    56. LBA3614300B1
    57. LBA3614300
    58. LF479Q1-3765011A
    59. LF479Q1-1003017A
    60. LF481Q1-2303324A
    61. LF481Q1-1701331A
    62. LF479Q1-1004100A
    63. LF481Q1-2303323A
    64. LBA3705100
    65.  
    66. http://relines.ru/catalog/lifan-smily-engine-and-transmission/page_2
    67.  
    68. LF479Q1-1025015A
    69. LF481Q1-1701334A
    70. LF479Q1-1025100A
    71. LF479Q1-1306100A
    72. LF479Q1-3707800A
    73. LF479Q1-3707000A
    74. LF479Q1-1003015A
    75. LF481Q3-3802100C
    76. LF479Q1-1003203A
    77. LF479Q1-3802100A
    78. LBA1132150B1
    79. LF479Q1-1025022A
    80. LF479Q1-1025023A
    81. LF479Q1-1025021A
    82. LBA3705100B1
    83. LF481Q1-1702160A
    84. LBA3616100B1
    85. LF479Q1-1005022A
    86. LF481Q1-1701030A
    87. LBA3612600B1
    88. LBA3612300
    89. LF479Q3-1307100A-1
    90. LF479Q1-1007017A
    91. LF479Q1-3818100A
    92. LF479Q1-1007018A
    93. LF479Q1-1006011A
    94. LBA3612300B1
    95. LF481Q1-1701330A
    96. LF479Q1-1003300A
    97. LF479Q1-1014100A
    98. LF479Q1-1008014A
    99. LF479Q1-1003012A
    100. LF481Q1-3802100B1
    101. q1840620
    102. LF479Q1-1025025A
    103. LF479Q1-1005019A
    104. LF479Q1-1003013A
    105. LBA1132150
    106. LBA3612500
    107. LBA1132160B1
    108. LF479Q1-1307015A
    109. LBA3612600
    110. LF479Q1-1004200A
    111. LF479Q3-3701190A
    112. LBA1132160
    113. LF479Q1-1008203A
    114. LF479Q1-1007011A
    115. LF481Q1-3729100A
    116. LF479Q3-3708130A
    117. LF479Q1-1009100A
    118. LBA1130310B1
    119. LBA3614300B1
    120. LBA3614300
    121. LF479Q1-3765011A
    122. LF479Q1-1003017A
    123. LF481Q1-2303324A
    124. LF481Q1-1701331A
    125. LF479Q1-1004100A
    126. LF481Q1-2303323A
    127. LBA3705100
    128.  
    129. http://relines.ru/catalog/lifan-smily-engine-and-transmission/page_3
    130.  
    131. LF479Q1-1025015A
    132. LF481Q1-1701334A
    133. LF479Q1-1025100A
    134. LF479Q1-1306100A
    135. LF479Q1-3707800A
    136. LF479Q1-3707000A
    137. LF479Q1-1003015A
    138. LF481Q3-3802100C
    139. LF479Q1-1003203A
    140. LF479Q1-3802100A
    141. LBA1132150B1
    142. LF479Q1-1025022A
    143. LF479Q1-1025023A
    144. LF479Q1-1025021A
    145. LBA3705100B1
    146. LF481Q1-1702160A
    147. LBA3616100B1
    148. LF479Q1-1005022A
    149. LF481Q1-1701030A
    150. LBA3612600B1
    151. LBA3612300
    152. LF479Q3-1307100A-1
    153. LF479Q1-1007017A
    154. LF479Q1-3818100A
    155. LF479Q1-1007018A
    156. LF479Q1-1006011A
    157. LBA3612300B1
    158. LF481Q1-1701330A
    159. LF479Q1-1003300A
    160. LF479Q1-1014100A
    161. LF479Q1-1008014A
    162. LF479Q1-1003012A
    163. LF481Q1-3802100B1
    164. q1840620
    165. LF479Q1-1025025A
    166. LF479Q1-1005019A
    167. LF479Q1-1003013A
    168. LBA1132150
    169. LBA3612500
    170. LBA1132160B1
    171. LF479Q1-1307015A
    172. LBA3612600
    173. LF479Q1-1004200A
    174. LF479Q3-3701190A
    175. LBA1132160
    176. LF479Q1-1008203A
    177. LF479Q1-1007011A
    178. LF481Q1-3729100A
    179. LF479Q3-3708130A
    180. LF479Q1-1009100A
    181. LBA1130310B1
    182. LBA3614300B1
    183. LBA3614300
    184. LF479Q1-3765011A
    185. LF479Q1-1003017A
    186. LF481Q1-2303324A
    187. LF481Q1-1701331A
    188. LF479Q1-1004100A
    189. LF481Q1-2303323A
    190. LBA3705100
    191.  
    192. http://relines.ru/catalog/lifan-smily-engine-and-transmission/page_4
    193.  
    194. LF479Q1-1025015A
    195. LF481Q1-1701334A
    196. LF479Q1-1025100A
    197. LF479Q1-1306100A
    198. LF479Q1-3707800A
    199. LF479Q1-3707000A
    200. LF479Q1-1003015A
    201. LF481Q3-3802100C
    202. LF479Q1-1003203A
    203. LF479Q1-3802100A
    204. LBA1132150B1
    205. LF479Q1-1025022A
    206. LF479Q1-1025023A
    207. LF479Q1-1025021A
    208. LBA3705100B1
    209. LF481Q1-1702160A
    210. LBA3616100B1
    211. LF479Q1-1005022A
    212. LF481Q1-1701030A
    213. LBA3612600B1
    214. LBA3612300
    215. LF479Q3-1307100A-1
    216. LF479Q1-1007017A
    217. LF479Q1-3818100A
    218. LF479Q1-1007018A
    219. LF479Q1-1006011A
    220. LBA3612300B1
    221. LF481Q1-1701330A
    222. LF479Q1-1003300A
    223. LF479Q1-1014100A
    224. LF479Q1-1008014A
    225. LF479Q1-1003012A
    226. LF481Q1-3802100B1
    227. q1840620
    228. LF479Q1-1025025A
    229. LF479Q1-1005019A
    230. LF479Q1-1003013A
    231. LBA1132150
    232. LBA3612500
    233. LBA1132160B1
    234. LF479Q1-1307015A
    235. LBA3612600
    236. LF479Q1-1004200A
    237. LF479Q3-3701190A
    238. LBA1132160
    239. LF479Q1-1008203A
    240. LF479Q1-1007011A
    241. LF481Q1-3729100A
    242. LF479Q3-3708130A
    243. LF479Q1-1009100A
    244. LBA1130310B1
    245. LBA3614300B1
    246. LBA3614300
    247. LF479Q1-3765011A
    248. LF479Q1-1003017A
    249. LF481Q1-2303324A
    250. LF481Q1-1701331A
    251. LF479Q1-1004100A
    252. LF481Q1-2303323A
    253. LBA3705100
    Но это сути не меняет. Все равно неправильно. В каждой группе одни и те же артикулы, а групп 4, а не 7

    Добавлено спустя 29 минут 5 секунд:
    Вот, чуть изменил, просто для наглядности, разбил цикл на две части. Одна выводит нужное кол-во записей страниц, а другая часть, ответственная за парсинг х.. какую-то (то же, что и выше)
    Код (Text):
    1.  
    2. <?php
    3. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    4. echo 'code is valid<br/>';
    5.  
    6. // example of how to use advanced selector features
    7. include('../config.php');
    8. include('../simple_html_dom.php');
    9.  
    10. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    11.  
    12. $page_group=array();
    13. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    14. $page_group[0]=$parse_start_page;
    15. $html=array();
    16. $html = file_get_html($page_group[0]);
    17. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    18. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    19. $element_article=$html->find('p.b-catalog__item__sku a');
    20. $count_pars = count ($html->find('p.b-catalog__item__sku a'));
    21.  
    22. for($i = 0; $i <= $page_count; $i++)
    23.   {
    24.  
    25. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    26. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    27.  
    28. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    29. //$html = file_get_html($page_group[$i]);
    30.  
    31. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    32. echo $page_group[$i].'<br/><br/>';
    33.  
    34.  
    35. }
    36.  
    37. $count_pages=count($page_group);
    38. echo $page_group[7].'<br/>';
    39.  
    40. $element_article=$html->find('p.b-catalog__item__sku a');
    41.  
    42. for ($k=0; $k<$count_pages; $k++) {
    43.  
    44. $html = file_get_html($page_group[$i]);
    45. for ($j=0; $j<=$count_pars;$j++){
    46. echo $element_article[$j]->innertext.'<br/>';
    47. }
    48. }
    49.  
    50. ?>
    Добавлено спустя 39 минут 34 секунды:
    Попробовал такую конструкцию, все одно, х..ня:
    Код (Text):
    1.  
    2. <?php
    3. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    4. echo 'code is valid<br/>';
    5.  
    6. // example of how to use advanced selector features
    7. include('../config.php');
    8. include('../simple_html_dom.php');
    9.  
    10. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    11.  
    12. $page_group=array();
    13. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    14. $page_group[0]=$parse_start_page;
    15. $html=array();
    16. $html = file_get_html($page_group[0]);
    17. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    18. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    19. $element_article=$html->find('p.b-catalog__item__sku a');
    20. $count_pars = count ($html->find('p.b-catalog__item__sku a'));
    21.  
    22. for($i = 0; $i <= $page_count; $i++)
    23.   {
    24.  
    25. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    26. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    27.  
    28. //ЕСЛИ РАСКОММЕНИТРОВАТЬ СТРОЧКУ НИЖЕ, ТО echo $page_group[$i].'<br/>'; ВЫВЕДЕТ АДРЕСА ДО 4-Й СТРАНИЦЫ
    29. //$html = file_get_html($page_group[$i]);
    30.  
    31. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    32. echo $page_group[$i].'<br/><br/>';
    33.  
    34.  
    35. }
    36.  
    37. $count_pages=count($page_group);
    38. echo $page_group[7].'<br/>';
    39.  
    40. $element_article=$html->find('p.b-catalog__item__sku a');
    41.  
    42. for ($k=0; $k<$count_pages; $k++) {
    43.  
    44. $html = file_get_html($page_group[$i]);
    45.  
    46. for ($j=0; $j<=$count_pars;$j++){
    47. echo $element_article[$j*$k]->innertext.'<br/>';
    48. }
    49. }
    50.  
    51. ?>
     
  4. sharunm

    sharunm Активный пользователь

    С нами с:
    16 ноя 2014
    Сообщения:
    58
    Симпатии:
    0
    Код ниже я изменил, требуется маленькая подсказка, а дальше я сам справлюсь:
    Код (Text):
    1.  
    2. <?php
    3. //проверяем валидность кода. Если будет показываться, то в php-коде ошибки нет
    4. echo 'code is valid<br/>';
    5.  
    6. // example of how to use advanced selector features
    7. include('../config.php');
    8. include('../simple_html_dom.php');
    9.  
    10. //ПОЛУЧАЕМ СТАРТОВУЮ СТРАНИЦУ И ЗАПИСЫВАЕМ ЕЕ МАССИВ СТРАНИЦ, КОТОРЫЕ БУДЕМ ПАРСИТЬ
    11.  
    12. $page_group=array();
    13. $parse_start_page='http://relines.ru/catalog/lifan-smily-engine-and-transmission/';
    14. $page_group[0]=$parse_start_page;
    15. $html=array();
    16. $html = file_get_html($page_group[0]);
    17. $page_count = count ($html->find('a.b-catalog__paginator__item'));
    18. $pagin_page_adress = $html->find('a.b-catalog__paginator__item');
    19. $element_article=$html->find('p.b-catalog__item__sku a');
    20. $count_art_arr = array();
    21.  
    22. for($i = 0; $i <= $page_count; $i++)
    23.   {
    24.  
    25. //ЗАПИСЫВАЕМ В АДРЕСА СТРАНИЦ И ПОДГРУЗИТЬ  СОДЕРЖИМОЕ ВСЕХ СТРАНИЦ
    26. $page_group[$i+1]='http://relines.ru'.$pagin_page_adress[$i]->href;
    27.  
    28.  
    29. //ВЫДАЕТ ВСЕ АДРЕСА ПРАВИЛЬНО
    30. echo $page_group[$i].'<br/><br/>';
    31.  
    32. }
    33.  
    34. for($k = 0; $k <= count($page_group); $k++)
    35. {
    36. $html[$k] = file_get_html($page_group[k]);
    37. echo count($html[$k]->find('p.b-catalog__item__sku a')).'<br/><br/>';
    38. }
    39.  
    40. echo count ($html->find('p.b-catalog__item__sku a')).'<br/><br/>';
    41.  
    42. ?>
    Вопрос: Консрукция ниже не работает. Вот как мне посчитать количество элементов p.b-catalog__item__sku a (которые я парсю), как их содержимое, вообще, записать в отдельный массив или БД? Я пробую по-разному не полчается.

    Код (Text):
    1.  
    2. for($k = 0; $k <= count($page_group); $k++)
    3. {
    4. $html[$k] = file_get_html($page_group[k]);
    5. echo count($html[$k]->find('p.b-catalog__item__sku a')).'<br/><br/>';
    6. }