Ответы пользователя по тегу Парсинг
  • Как создать базу всех книг на сайте?

    Есть ещё пиратские сайты, как lib.rus.ec и flibusta, где могут находиться книги, которых не будет на перечисленных выше сайтах. На торрент трекерах есть архивы книг с lib.rus.ec и flibusta. Возможно тоже пригодится, если не контентом, то, хотя бы, идеей катологизации.

    P.S. Число страниц довольно абстрактное понятие. Оно зависит от размера материала/экрана на котором отображается книга.
    Ответ написан
    Комментировать
  • При парсинге через прокси отдает 404 страницу?

    Всё зависит от прокси и его типа, вот тут в видео рассказывается об этом моменте https://www.youtube.com/watch?v=EBfQa8NkJbA&list=P...
    Так же где-то тут уже были вопросы с подобной проблемой, один человек дал достаточно дельный совет: купить дешёвый ВПС и заказать много айпишников (как утверждал отвечавший - можно купить за копейки). Так же был вариант парсить через Tor.
    Ответ написан
    Комментировать
  • Почему при парсинге возвращается неактуальная версия страницы?

    Нашёл у них страницу https://otvet.mail.ru/api/v2/questlist где в json хранятся и, что важно для вас, своевременно обновляются все вопросы.

    То есть достаточно этого кода:
    json_decode(file_get_contents('https://otvet.mail.ru/api/v2/questlist'), true)


    И получите в массиве последние 100 записей
    Ответ написан
    Комментировать
  • Каптча. Ручное распознавание с помощью пользователя?

    То есть вы хотите интегрировать на свой сайт проверку права на обслуживание с приведённого сайта? В самих тонкостях касаемо конкретного примера я не разбирался, так как такой задачи не было, но на том сервисе картинка, как и сама форма создаётся через JS, то есть просто взять и выдрать через php её не получится. В отдельных случаях, в похожих ситуациях, получается залезть внутрь JS файла, прочитать нужные данные и отправить необходимый запрос на сервер, но на сколько это реально в данном случае (хотя на первый взгляд кажется вполне возможным) и хватит ли у вас навыков - я не знаю.
    P.S. Не забывайте, что капча на каждую загрузку страницы будет разная, следовательно придётся ещё разбираться в этом вопросе.
    Ответ написан
    Комментировать
  • Парсить страницу после выполнения скриптов?

    Нашёл вот такое на примере с ценой
    <script type="text/javascript">document.write('<div class="b-post__price b-post__price_padleft_10 b-post__price_padbot_5 b-post__price_fontsize_15 b-post__price_bold b-post__price_float_right"> 150&nbsp;000&nbsp;р./месяц </div>');</script>


    Соответственно остальное добавляется точно так же. То есть надо парсить не html, а то, что находится в document.write. Так можно будет спарсить инфу там, где список проектов.

    Но я бы собрал все ссылки на проекты, а потом распарсил бы уже внутренние страницы самих проектов.
    Ответ написан
    3 комментария
  • Как избегать ошибок при использовании функции load_file() в SIMPLE HTML DOM?

    А почему бы не сделать рекурсивную функцию, где если в условии подпадает null, то функция опять вызывается и пытается спросить?
    Ответ написан
    Комментировать
  • Как спарсить больше 90 страниц на Simple HTML DOM?

    Есть у simple HTML DOM такая болезнь, надо все вхождения find оборачивать в
    if (method_exists($html, "find")){
        if($html->find('нужный нам селектор')){
            код парсинга
        }
    }


    Я из-за таких вот косяков и перешёл на phpQuery
    Ответ написан
    1 комментарий
  • Как парсить теги?

    Используйте подготовленные запросы php.net/manual/ru/mysqli.quickstart.prepared-state...
    Ответ написан
    Комментировать
  • Как можно быстро запарсить более 1000 картинок с сайта?

    Советую библиотеку PHPQuery, в ней нету таких глюков, как simple html dom (я пробовал и тм и тем, но понравилась именно phpquery).

    Ссылки на уроки:
    habrahabr.ru/post/69149
    i-novice.net/parsim-sajty-s-phpquery

    Недавно как раз и парсил картинки этой библиотекой и она очень хорошо справилась

    Для того, что бы сохранить конкретно картинку, то надо при помощи библиотеки найти ссылки на картинки, я искал на странице и помещал все найденные ссылки в массив, пример кода:
    $model_page_url = file_get_contents($page);  //Получаем всю страницу
      $model_page = phpQuery::newDocument($model_page_url); //Создаём объект страницы библиотекой
      $images_link = $model_page->find('img'); //Ищем все теги img
      foreach ($images_link as $image_link) {
        $images[] = pq($image_link)->attr('src'); //В цикле помещаем ссылку на картинку в массив
      }


    Затем примерно так:
    foreach($images as $image){
            $image_name = basename($image); //Определяем имя и расширение картинки
            if(!file_exists('img/'.$image_name)){ //Проверяем нет ли такой картинки
              file_put_contents('img/'.$image_name, file_get_contents($image)); //через file_get_contents($image) получаем картинку по ссылке и file_put_contents кладём её в нужную нам папку
            }else{
              continue;
            }
          }


    Весь примерный процесс парсинга изображений
    Ответ написан
    6 комментариев