Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Как лучше всего парсить данные

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Есть двойная задача:

1. Скриптом залогиниться на внешнем веб-сайте

2. Распарсить таблицу данных и сохранить себе в базу

Вопрос в том, есть ли какие-то волшебные средства для этого, упрощающие жизнь РНР-программера?

На данный момент решается через cURL + regexp. Недостаток — смена дизайна (например, что-то поменяли в HTML-разметке разбираемого блока) приводит к тому, что надо переделывать скрипт.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Красиво.

Договор не всегда получится заключить (если нужно взять цифирки из сайта какого-нить гиганта типа Гугла или Пейпала), но идея правильная, спасибо!

Классический вариант решения
Подписывается двусторонний договор. Оговаривается формат трансфера данных. В договоре описывается порядок изменения структуры данных и уведомления об этом другой стороны. Оговаривается регламент процедуры и оговаривается доступность сервиса (резервные сервера) во времени.
Решаются проблемы:
1. Парсинга — тебе предоставляю данные, а не ты их откуда-то выколупываеш
2. Изменения формата — тебя уведомят «до того как»
3. бОльшую часть работы могут сделать не программисты (договор заключить и так далее). От программера требуется только согласовать техническую спецификацию. В идеале вааще попросить csv формат для заливки «на лету» в базу без всяких там DOM:)
4. При выполнении П.2 от программера требуебуется только расслабиться и наслаждаться жизнью:) — дня за 2 можно полностью управиться.

Или задача не стоит «договора»?

2 Vadim Voituk: хорошая штука этот SimpleHTMLDOM... Прямо jQuery для РНР.
Да, сайт, который надо парсить, не свой.

Идею я понял, спасибо, парни!

тогда нужно сделать мета-разметку, которая в случае будет нормализовать изменения, либо направлять парсер, в случае изменения данных будут меняться только мета данные,

если так сильно не хочеться парсер менять

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

например как ворд добавляет свои теги в HTML когда с помощью него создавать страницу, так же уктуально и для других скриптовых языков — есть каменты которые не значат для парсера вью, но могут значить для парсера данных

млжно раскидать non-html данные в DOM и тогда работать не зависимо от структуры

There is no magic.

Если поменялась структура страницы — прийдется чинить парсер. Никакая библиотека от этого не спасет.

2 Сергей Волошин: спасибо!

2 Soft: да, можно использовать DOM и XPath, этим путём и собирался идти. Просто мало ли — DOM изменится...


Скакунов Александр 1 час назад
Есть двойная задача:
1. Скриптом залогиниться на внешнем веб-сайте

2. Распарсить таблицу данных и сохранить себе в базу

Использовал PHP на уровне блондинки (тоесть с книжкой в руках для пары страничек), но разве там нет DOM-парсера для HTML?

Можеш ще глянути статті тут
www.parse.com.ua
www.parse.com.ua/...egory/tonkosti

або запитати в аторів цього сайту.

Підписатись на коментарі