• Главная
  • Карта сайта
Не найдено

Главная Новости

Как написать парсер на php?

Опубликовано: 06.09.2018

видео Как написать парсер на php?

Парсинг сайтов. Библиотека phpQuery. Урок 1

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



Способов сделать это существует уйма – например, имеется мощная программа, предназначение которой парсить сайты, называется content downloader . Среди минусов ее то, что она десктопная, то есть, работать с ней придется либо со своего компьютера, либо с удаленного сервера. Само собой программа платная, так что придется еще и заплатить какую-то сумму денег, чтобы использовать ее (имеется несколько типов лицензий).


Парсинг сайтов на PHP - простой парсер

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

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


Граббер ( парсер ) товаров на php

Самый лучший вариант – написать php скрипт , который будет подключаться с удаленного хостинга через прокси, например, к нужному ресурсу, и сразу же добавлять спарсенную информацию в базу данных.

Что для этого требуется? Основные знания php, то есть умение работать с данными, хорошее владение синтаксисом, и опыт работы с библиотекой cURL .

Как же выдрать нужные данные со страницы? Сначала обязательно следует скачать саму страницу, например, с помощью библиотеки cURL, хотя можно воспользоваться и стандартной функцией file_get_contents, если хостинг поддерживает удаленное подключение через fopen. cURL к слову очень мощный инструмент для составления POST, GET запросов, использования прокси и вообще всего, чего только душе угодно, плюс установлен на любом хостинге практически.

Теперь данные нужно обработать, тут следует выбрать, каким образом выдирать информацию со страницы. Можно воспользоваться стандартными функциями php, вроде strpos, substr и т.д., но это настолько криво, что лучше об этом даже не думать.

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

Благо, что существуют уже готовые библиотеки, которые позволяют сосредоточиться непосредственно на работе со страницей, как с DOM (Document Object Model).

$doc = new DOMDocument(); $doc->loadHTML ( $data );

Первая строчка создает объект, а вторая создает из обычных string данных (в которых должно находиться содержимое страницы) создает DOM.

Далее, если нужно найти все теги вида "a" (ссылки), то нужно написать такое:

$searchNodes = $doc->getElementsByTagName( "a" );

Теперь в переменной $searchNodes находится массив из найденных тегов "a".

foreach ( $searchNodes as $cur ) { echo $cur->getAttribute( 'href' ); }

А этот код выведет все значения полей href (обычно это адрес, куда попадает пользователь после нажатия на ссылку).

Более подробно с данной мощной библиотекой можно ознакомиться в официальной документации.

Но если вы хотите еще проще и удобней, то обратите внимание на библиотеку PHP Simple HTML DOM Parser. Она очень удобна и проста в освоении, разобраться, что к чему можно буквально за 10-15 минут, однако, с некоторыми типами данных она работает не слишком хорошо.

Существуют еще библиотеки, но эти две наиболее удобны и просты в освоении.

7694

Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss