Задать вопрос
  • Закроют ли возможность покупки прокси?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    С нашим роскомнадзором возможно все, хотя и маловероятно. То что происходит сейчас, очень тревожный звонок. Фактически идет защита прав одних за счет нарушения прав других и если это сойдет им с рук, то дальше будет только хуже.
    Ответ написан
    Комментировать
  • Каким образом можно спарсить все комментарии к медиа в инстаграм?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Тут можно прочитать как изучить работу страницы с бесконечной подгрузкой на примере инстаграм https://www.diggernaut.ru/blog/kak-parsit-stranits...
    Ответ написан
    Комментировать
  • Насколько сейчас выгодно заниматься web scrap/data mining на фрилансе?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Смысл соваться есть, если есть интерес к такой работе а не просто цель заработать. На апворке можно найти более менее интересные проекты, но их с вменяемым объемом оплаты не так и много. Сложность парсинга - по разному, а соответственно и себестоимость будет очень разной. Некоторые вещи вообще нецелесообразно будет парсить, потому что решение челленджей не покроет сумма которую люди готовы платить. Чтобы быстро и качественно обходить защиты, с минимальными временными и ресурсными потерями, нужно иметь разработанный фреймворк с ротацией прокси, решением капчи (OCR и 3rd Party), обходом челленджей современных антискрапинговых систем защиты и т.д. То есть иметь инструмент удешевляющий стоимость разработки и сбора и ускоряющий процессы, без этого очень сложно будет держать уровень качества, укладываться в сроки и повышать объемы.
    Ответ написан
    Комментировать
  • Как лучше осуществлять постоянный сбор и обновление данных с сайта http://bitinfocharts.com?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    На btc.com есть такое https://btc.com/stats/rich-list, эти данные возможно доступны также через их API, надо читать документацию. Через API конечно работать предпочтительней чем парсить страницы.
    Ответ написан
    Комментировать
  • Как сделать данные читабельными?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    отдать хедер Content-type: text/plain не помогает?
    Ответ написан
    Комментировать
  • Как правильно распарсить?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Не скажу что хорошо понимаю в PHP, но судя по логике у Вас странное условие ($parent == $node->nextSibling->parentNode), по-моему явно не хватает else
    if ($parent == $node->nextSibling->parentNode) {
        $page .= $content;
      } else {
        $id =$parent->getAttribute('id'); //значение id
        $num = substr($id, 5); //обрезаем "issue"
        $fp = fopen($catalog . '/' . $num . '.html', "w"); //создание файла
        fwrite($fp, $page); //запись
        fclose($fp); //закрытие
        $page = "";
      }


    Еще наверное имеет смысл проверять есть ли $node->nextSibling перед тем как забирать его parentNode. Не знаю насколько это критично в PHP.
    Ответ написан
  • На чем сделать одновременный JS-парсинг большого количества WEB-страниц?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    У меня коллега писал парсер для беттинга (под заказ), 2000 запросов должны были быть обработаны каждые 10 секунд (включая собственно забор данных, парсинг и запись в базу). Могу сказать что с Python у него не получилось уложиться, поэтому был использован Go.
    Ответ написан
  • Парсинг данных, какой язык практичней?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Go - отличный язык и справляется очень хорошо с многопоточностью. Если планируются высокие нагрузки и конкурентные запуски, то из всего что перечислено - только Go.

    Однако для примера 1 и 2 непонятно как вы будете использовать эффективно многопоточность. Определитесь сначала с объемами, сколько запросов будете делать. Как часто датасеты будут обновляться и так далее. После этого можно будет выбирать инструмент.
    Ответ написан
    Комментировать
  • Как спарсить данные script через phpQuery?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Если страница догружается, значит скорее всего едет XHR запрос, данные в нем скорее всего в JSON. Возможно проще было бы забрать его и распарсить. Если бы дали URL который нужно забрать, можно было бы сказать больше.
    Ответ написан
  • Как правильно парсить https?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Попробуйте первым делом максимально замаскироваться под браузер (посылайте с запросом заголовки, аналогичные браузерным. Удостоверьтесь что от вас уезжает браузерный User-agent а не что-то типа "php-crawler". После забора каждой страницы чистите куки-jar (очень часто помогает). Делайте паузы между заборами страниц, тут можно экспериментировать от нескольких секунд до минут, делать их рандомными. По поводу сертификата, можно отключить проверку сертификата:

    $this->client = new GuzzleClient(['verify' => false ]);
    Ответ написан
    Комментировать
  • Как убрать не нужные символы в строке?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Зачем так сложно и негуманно к себе и яндексу. Менее накладнее забрать отсюда:
    https://zen.yandex.ru/media-api/publication-view-s...

    без селениума, используйте например urllib2
    Ответ написан
  • Что такое парсинг с сайта (простым языком)? и на каком ЯП обычно пишется?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Парсинг сайтов (web scraping по-английски) - это процесс забора (crawling) содержимого веб-ресурса (например, страницы) и извлечения частей этого документа в четко структурированный набор данных. Парсер можно писать на любом языке программирования, или вообще не зная никакого языка, пользуясь облачными сервисами для парсинга.
    Ответ написан
    Комментировать
  • Какой выбрать Python фреймворк для системы парсинга сайтов?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Писать свой фреймворк с нуля, достаточно тяжелая задача. Сам участвовал в разработке 1 Perl фреймворка, 2-х на Python и одного на Ruby и еще одного на Go (все проприетарные) :) Однако дает возможность выстроить любую архитектуру под свои нужды. Это имеет смысл если объемы большие - сотни и тысячи парсеров и не устраивает архитектура существующих фреймворков.
    Пункты 3 и 4 никак друг другу не противоречат, данные вы храните централизованно в базе. Задачи запускаете распределенно через систему управления задачами (воркеры запускающие парсеры, могут находиться на разных хостах). Прокси должны быть обязательно, вне зависимости от степени распределенности.
    По поводу желания запускать только парсинг часть, не уверен что это возможно из коробки, но могу предложить обходной путь. Пишется 2 скрапера - один краулер, второй парсер, который парсит локальные страницы.
    Ответ написан
    Комментировать
  • Что делать с плохими ботами?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Это борьба с ветряными мельницами. Если боты не затрудняют работу сайта, проще с ними смириться. Если затрудняют, это уже повод для юридического преследования.
    Ответ написан
    Комментировать
  • Как получить абсолютную ссылку из относительной при парсинге?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Сам я на PHP не пишу, поэтому загуглил и был весьма удивлен что не смог найти ничего кроме этого:
    https://github.com/monkeysuffrage/phpuri

    Как вариант можно написать функцию самостоятельно
    Ответ написан
    Комментировать
  • Как достать src внутри тега iframe?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Если значение атрибута пустое, то он заполняется с помощью JS. Это легко проверить, если у Вас стоит Quick Javascript Switcher для браузера. Просто отключаете JS и смотрите на интересующий Вас элемент DOM.
    Вам надо изучить механику работы страницы и найти откуда берется нужный Вам URL. Или Вы можете использовать headless browser.
    Ответ написан
    1 комментарий
  • Какие существуют сервисы по распознаванию funcaptcha и recaptcha?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Работает с рекапчей в частности deathbycaptcha. Но с nocaptcha v2 нужно им также передавать прокси, которым вы забираете страницы, чтобы человек, решающий капчу делал это под вашим IP. Про funcaptcha не скажу, не сталкивался. Как вариант спишитесь с сервисом, расскажите о своих проблемах, кто-нибудь обязательно это реализует, если нет технических проблем.
    Ответ написан
    Комментировать
  • Как парсить компании на сайт wordpress?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Лучше разделить парсинг и импорт данных в вашу CMS. По парсингу: зависит от того, сколько сайтов требуется парсить, что именно забирать. Например, если вы забираете какие то контактные данные с кучи разных сайтов, можно обойтись одним парсером. Если забираются разнородные данные и структура сайтов разная, то на каждый сайт придется писать свой парсер. Если парсеров десятки или сотни, то лучше иметь фреймворк для управления и мониторинга, в противном случае проблему могут начать расти как снежный ком и если вовремя все не фиксить (сайты меняют структуру и ваши парсеры перестают корректно работать), то ваша система очень быстро придет в упадок. Также немаловажным фактором при работе с большим количеством парсеров - постоянный контроль качества данных, иначе вы рискуете залить себе в базу битые данные, для этого большую часть процесса проверки нужно автоматизировать. Этим также должен заниматься ваш фреймворк.

    В общем это достаточно сложный процесс, который, при количестве парсеров больше 50, потребует постоянного штата сотрудников в количестве прямо зависящем от сложности парсеров. Почему в штат, потому что в бизнесе лучше обходится без лишних рисков.

    Другой вариант, воспользоваться парсинг сервисами, в которых по умолчанию есть нужные функции. Например, проверка собранных данных, запуск по расписанию, уведомления в случае сбоев и тд.
    Ответ написан
    Комментировать
  • С чего начать изучение искусственного интеллекта?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    После курса Machine Learning на Coursera как советовали выше, и если не утомит, можно пройти курс Neural Networks for Machine Learning
    Ответ написан
    Комментировать
  • Есть ли софт для парсинга сайтов?

    JabbaHotep
    @JabbaHotep
    Пытаюсь минимизировать ручную работу
    Есть облачный сервис Diggernaut.

    Можно работать с визуальной тулзой или писать конфигурации руками, там свой язык. Есть документация, а также блог с разными кейсами.

    Доступна кучка бесплатных парсеров на гитхабе

    Забыл добавить, парсеры можно компилить под win/mac/linux для запуска у себя а не в облаке.
    Ответ написан
    1 комментарий