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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Например, можно автоматически создавать колонки под недостающие параметры по мере анализа. Можно завести словарь, который отображает названия характеристик в номер колонки, если при парсинге страницы обнаружена новая характеристика, которой в словаре нет - добавлять новую запись со следующим номером колонки. При создании новой строчки в выходнойм файле по именам параметров определять их позиции в массиве и подставлять.

    Другой вариант: разные категории помещать на разные листы (в случае с csv писать в разные файлы, ну или перейти на xlsxwriter). В этом случае таблица будет не такой разреженной, что в некоторых случаях может быть более удобно удобно.
    Ответ написан
    Комментировать
  • Как парсить карточку товара Wildberries на python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Потому что в странице и правда нет этой информации, она потом рендерится с помощью js. Решать так же, как и всегда: либо с помощью Selenium, либо разобраться, что как js получает данные, и достать их самому.
    Ответ написан
  • Какие библиотеки использовать для парсинга текстовых файлов (Python)?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Допустим, мы напряжёмся и пропарсим миллион файлов не за полтора часа, а за час, потратив три часа на разработку и отдалку кода. И зачем? Чего мы тут сэкономим? Обычно для разовых операций временем работы заботятся тогда, когда оно действительно велико. Например, если требуется месяц непрерывной работы, то я бы ещё подумал, можно ли его сократить до недели.

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вообще говоря, в данном случае скачать совсем не проблема безо всяких скриптов, достаточно wget:

    wget -r -np https://codernet.ru/media/
    Ответ написан
    3 комментария
  • Есть ли библиотеки для серфинга по бразеру без граф. Оболочки? selenium без граф. оболочки, что то между selenium и requests?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если нужно выполнять прямые запросы - requests. Придётся самостоятельно разобраться в устройстве сайта, в том числе в динамически генерируемом контенте.

    Если надо изображать настоящий браузер с js - selenium.

    Никакого волшебного аналога selenium "без браузера" не существует и не может существовать, ведь он должен имитировать полноценный браузер с окном, документом, скриптами и css, а без настощего браузера (хотя бы headless) этого не достичь.
    Ответ написан
    Комментировать
  • Как правильно парсить сайты, чтобы не словить капчу?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Появление капчи в общем случае никак нельзя предотвратить. Надо понимать, что капчу показывают не только ботам. Капчу показывают просто любым посетителям сайта при наступлении каких-то условий. Просто человеку сложнее добиться этих условий в обычном сценарии использования сайта, но даже если она возникнет, то её очень легко разгадать, а вот для бота это затруднение.

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Телеграм всячески декларирует заботу о приватности пользователей, а потому активно борется с бесконтрольным получением данных о телефонах. Так что нет, в общем случае нельзя. Но единичных пользователей можно считывать, если у них не скрыт номер телефона в профиле от посторонних, с помощью клиентского API (не бота). Много пользователей сразу сканировать не получится всё равно.

    Также можно найти пользователей по номеру телефона (тоже в небольших количествах!), если добавить телефон в свой список контактов. Такой вот "обратный" поиск (по номеру). Но при большой активности такого рода Телеграм ей также будет препятствовать.

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

    Рекомендую даже не пытаться, тем более что в целом это лишено смысла. Телеграм - мессенджер, который изначально декларирует, что пользователь идентифицируется другими пользователями НЕ по номеру телефона в качестве основного идентификатора.
    Ответ написан
    Комментировать
  • Как спарсить информацию с сайта, который не размещен на сервере?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если сайт лежит в виде статических файлов на диске, то надо просто читать эти файлы с диска вместо запросов с сервера и свободно обрабатывать теми же самыми регулярками, lxml, bs4 и ещё чем душе угодно. Тут даже проще будет - не надо разгадывать капчи, сохранять куки и всё такое.

    Конечно, можно поднять локально web-сервер, но это как вызвать команду геодезистов с теодолитом для измерения своей гостиной, хотя лучше было бы просто купить рулетку.
    Ответ написан
    Комментировать
  • Как спарсить с telegram контактов группы/каналов, используя свой аккаунт через python?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Тут в коде два раза создаётся TelegramClient, один из них лочит файл сессии, второй потом валится из-за того, что она залочена первым.
    Ответ написан
    Комментировать
  • Как получить данные со страницы сайта, для последующего парсинга?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Этот сайт с помощью этого js выставляет куки, потом редиректит на себя же ещё раз, при этом с правильной кукой выдаёт уже нормальный контент.

    Основная логика тут:

    salt="1524556899";
    document.cookie="ipp_sign="+e+"_"+salt+"_"+md5(e+salt)+"; expires=Tue, 31 Dec 2030 23:59:59 GMT; path=/;";
    ipp.setCookie();
    window.location.href = "https://galaxystore.ru/discount/?utm_referrer=" + window.location.hash;


    Соответственно, сайт вычисляет fingerprint, по которому идентифицирует пользователя, далее солит его и считает md5. Можно пытаться брать что-нибудь рандомное, похожее на этот fingerprint, и воспроизводить такую же логику. Но при активном трафике на эту страницу там могут и начать с этим бороться, в том числе банить по IP, вносить какие-нибудь мелкие изменения в алгоритм итд итп.

    PS: К вопросу об этической стороне. Все мы любим иногда получить что-то подешевле, это не грех. Но иногда есть деятели, которые хотят подешевле покупать десятками, затем продавать дороже каким-нибудь лохам и на этом наживаться. Именно они и любят делать такие вот парсеры. Это некрасиво, я бы отказался от такого заказа.
    Ответ написан
    2 комментария
  • Есть ли возможность парсить сообщения в сообществах Viber?

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Начнём с того, что 500 шт. каждые 5 с - это 100 запросов в секунду. Прокси будут баниться очень быстро при подобном трафике.

    Далее, получение данных мегабыстро имеет смысл в автоматизированных системах торгов на фондовой бирже, а если это в телеграм человеку сливать, то он в любом случае будет реагировать намного медленнее этих 5 секунд. И зачем тогда так часто опрашивать? Если опрашивать с интервалом в 3 секунды, то товары будут приходить с опозданием в среднем 13 минут, максимум 25 минут, что для многих задач вполне приемлемо.

    Советую поговорить с заказчиком ещё раз на тему того, что именно ему нужно.
    Ответ написан
    15 комментариев
  • Русскоязычные сайты в других доменных зонах, как найти?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Есть огромное количество сайтов в доменах третьего уровня, которых нет в доступных списках доменов. И в целом далеко не всякий сайт даже в поисковиках находится, не говоря уже о том, чтобы их кто-то каталогизировал. Задача в общем случае неразрешимая.

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Эти данные заполняет javascript на сайте (с включённым uMatrix у меня тоже ничего не показало). Надо разобраться, что и как скрипт делает, и воспроизвести его логику. Подозреваю, что нужные данные находятся в параметре vfa формы finanaliz-form, но дальше разбираться мне лень.
    Ответ написан
    Комментировать