Как спарсить данные с другого сайта

В данном посте расскажем, как можно спарсить данные с "чужого" сайта и сохранить их у себя, с помощью php скрипта.

Если вы читатете, данный пост, значит перед вами встал вопрос: "Как же можно стянуть необходимые данные с интересующегося сайта". Если вам это нужно, для продвижения сайта, лучше так не делать, т.к поисковики "любят" уникальный контент. Если вам нужна информация, для последующего анализа данных, поддержания актуальности базы данных, и т.п, то "велкам" :)

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

Парсинг информации состоит из нескольких этапов

1 этап. Определить доступность сайта для парсинга.

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

В этом вам поможет PHP библиотека сUrl. Сразу скажу, что даже самая простая система защиты от "парсинга", сильно затруднит работу скрипта. Во-первых, никто не знает, сколько у сайта-донора таких систем, во-вторых каждую такую систему, нужно обходить, и это увеличит скорость работы скрипта.

2 этап. Парсинг страниц.

Здесь все просто, в PHP имеется прекрасная библиотека для работы с HTML документами.  Simple Html Dom, скачать можно здесь.

Пример кода:

Можно еще воспользоваться встроенной библиотекой DomDocument. Но она больше предназначена для работы с XML документами. И если верстка имеет ошибки (например незакрытые тэги), то данная библиотека сгенерериует ошибку.

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

Пример кода:

3 этап. Сохранение результатов парсинга.

Для сохранения результатов парсинга, проще всего воспользоваться реляционными базами данных. Такие как mysql или postgresql

 

В заключении хотелось бы сказать, что идеального парсера не существует. Для каждого сайта, нужно учитывать свои особенности структуры хранения данных. 

 

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

© Krenar 2020. All right reserved.