как очистить веб-страницу с нумерацией страниц - PullRequest
1 голос
/ 23 марта 2019

Я настраиваю новый сервер и хочу почистить некоторую информацию с веб-сайта.

Это мой код, я пытался почистить страницы одну за другой, но я получил только 2 страницы

$result = array();
function scrapingAnimelist($url, $page)
{

    $res = array();
    $urlParsed = $url . "&page=" . $page;
    $html = file_get_html($urlParsed);

    $pageData = array();
    foreach ($html->find('div[class=body]') as $item) {
        $metaData = array();
        $metaData['title'] = $item->find('h2[class=title]', 0)->innertext;
        $metaData['img'] = $item->find('img[class=img]', 0)->src;
        $metaData['url'] = $item->find('a', 0)->href;
        array_push($pageData, $metaData);
    }

    $res[$page] = $pageData;

    if (sizeof($pageData) == 20) {
        $page++;
        $res[$page] = scrapingAnimelist($url, $page);
    }
    global $result;
    $result = $res;


    return $pageData;

}

Я ожидаю, что выходные данные объекта json с двумя массивами (данными страницы) будут равны 3 в ссылке: https://anime -list2.cf / anime-search? S = mag

1 Ответ

1 голос
/ 23 марта 2019

Ваш $result не настроен на второй запуск

ты должен сделать это так

$result = array();
function scrapingAnimelist($url, $page) {
  global $result;

  $urlParsed = $url . "&page=" . $page;
  $html = file_get_html($urlParsed);

  $pageData = array();
  foreach ($html->find('div[class=body]') as $item) {
    $metaData = array();
    $metaData['title'] = $item->find('h2[class=title]', 0)->innertext;
    $metaData['img'] = $item->find('img[class=img]', 0)->src;
    $metaData['url'] = $item->find('a', 0)->href;
    array_push($pageData, $metaData);
  }

  $result[$page] = $pageData;

  if (sizeof($pageData) == 20) {
    return scrapingAnimelist($url, $page + 1);
  }
  return $result;
}
...