Все о web разработке на xdan.ru
  • Регистрация
  • Войти
         

Menu
  • Главнаявсе о web разработке
  • CopySiteСервис
      • Новости сервиса CopySite
  • Категориивсе материалы
      • JavaScript
          • jQuery
              • Обзор плагинов
      • PHP
          • Yii
          • Laravel
      • Новости Web технологий
      • Soft
          • Opera
      • Парсеры
      • CMS
          • Joomla
              • Документация для разработчиков Joomla
          • Danneo
          • UMI
          • Drupal
      • Социальные сети
      • Из жизни
      • Политика
      • Мои разработки
          • Конструктор Yandex карт
      • Новости сайта
      • SEO
      • Защита сайта
      • Администрирование WEB сервера
      • Монетизация сайта
      • web разработка
      • Железо
      • Хостинг
      • Игры
      • Про киномнение о кино
      • Нативное программирование
      • Видео
  • Магазинкупить продукты сайта
  • Joomlaвсе для joomla
      • Плагин CTRL+S быстрое сохранение материала в Joomla
          • Скачать плагин CTRL+S
      • Создаем собственную SEF систему для Joomla
      • Как написать Joomla плагин для xmap
      • Модуль Конструктор Яндекс Карт для Joomla
          • Скачать модуль Конструктор Янлекс Карт для Joomla
      • Компонент Яндекс Карты для Joomla
          • Документация компонента Яндекс Карты для Joomla
          • Демонстрация - лицевая часть
          • Демонстрация - администратор (demo,demo)
          • Уроки
      • Менеджер перенаправлений Joomla
  • Наши разработкиавторские разработки
      • HTML Map generator
      • liveadd
      • Конструктор Яндекс Карт
      • Онлайн синонимайзер текстов
      • Joomla Module Generator
      • Joomla плагин CTRL+S AutoSave
      • Лучший DateTimePicker
      • miniMySQLAdmin - легковесная альтернатива phpMyAdmin
      • Joomla модуль Конструктор Яндекс Карт
      • Скачать копию сайта
  • Конструктор Yandex картгенератор кода для Яндекс карт

Учимся парсить сайты с библиотекой PHP Simple HTML DOM Parser

Подробности
Категория: PHP
Опубликовано: 18 марта 2011
Просмотров: 391086
  • парсер
  • html
  • simple_html_dom
  • dom
  • парсер яндекса

copysite

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

 Возьмем HTML код: 

<div><a href="http://xdan.ru"><div>Сайт по программированию парсеров</div><div> и многое другое</div></a></div>

К примеру, из него нам нужно получить описание и url сайта. Если брать исключительно этот кусок кода, то все решается достаточно просто: 

$html = '<div><a href="http://xdan.ru"><div>Сайт по программированию парсеров</div><div> и многое другое</div></a></div>';
preg_match('#<div><a href="([^"]+)"><div>([^<]+)</div><div>([^<]+)</div></a></div>#U',$html,$list);
echo 'url:'.$list[1].',title:'.$list[2].$list[3]; // выведет url:http://xdan.ru,title:Сайт по программированию парсеров и многое другое

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

<div><a href=”http://xdan.ru”><div>Сайт по <b>программированию</b> парсеров</div><div> и многое <div> многое </div> другое </div></a></div>

Такой код регулярному выражению не по зубам.

Обычно, в вузах на этот случай учат писать конечный автомат. Суть его в том, что мы перебираем, посимвольно, весь html текст, находим начало тега, и строим дерево документа. Так называемое DOM (Document Object Model)

Сейчас, писать такое самому  нет необходимости.

В php, начиная с  версии 5, есть встроенные методы работы с деревом документа (класс DOMDocument), но основан он на XML парсере.

А HTML и XML это хоть и очень похожие, но в тоже время абсолютно разные технологии.

К примеру, непременное требование к XML это закрытые теги и отсутствие ошибок.

Отсюда вытекает условие: ошибок в html, который мы парсим с помощью нативных средств php,  быть не должно.

К сожалению, на сайтах донорах, ошибки не редки, а значит этот метод отпадает.

Для корректного разбора таких сайтов, на помощь придут php библиотеки PHPQuery, Simple HTML DOM, Zend DOM Query, Nokogiri .

Некоторые из них, после небольших манипуляций скармливают html  тому же DOMDocument. Мы не будем их рассматривать.

В этой статье я расскажу про SimpleHTMLDOM. Этой библиотекой я пользуюсь уже несколько лет, и она меня еще ни разу не подводила.

Рассказать друзьям
Подробнее... 276 комментариев

Примеры работы с ajax на jQuery

Подробности
Категория: jQuery
Опубликовано: 02 марта 2011
Просмотров: 125956
  • jquery
  • ajax
  • post
  • get
  • getjson
  • авторизация

В библиотеке jQuery есть несколько методов для работы с ajax: jQuery.post, $.get, $.getJSON, $.ajax. В конечном счете, все они - более удобная надстройка над $.ajax. Объясню на простом ajax примере: 

Отправим на страницу index.php данные с формы. После того, как данные отправлены, выведем сообщение. В случае ошибки также сообщим об этом пользователю.

Сначала методом $.post

var data = $('#form').serialize(); 
$.post('index.php',data,function(data,status){
	if( status=='success' ){
		alert('Данные успешно отправлены!')
	}else{
		alert('В процессе отправки произошла ошибка :(')
	}
})
Рассказать друзьям
Подробнее... 19 комментариев

Как написать универсальный парсер сайтов за 1 час

Подробности
Категория: PHP
Опубликовано: 25 апреля 2014
Просмотров: 95902
  • php
  • парсер
  • curl
  • simplehtmldom
  • простейший парсер
  • парсинг

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

Рассказать друзьям
Подробнее... 38 комментариев

Работа с файлами в JavaScript, Часть 1: Основы

Подробности
Категория: JavaScript
Опубликовано: 26 июня 2012
Просмотров: 93171
  • ajax
  • html5
  • file api
  • drag and drop
  • file
  • filelist
  • formdata

При всем бурном развитии web, и стандартов html в частности, работа  с файлами, практически никогда не менялась. К счастью, с приходом HTML5 и связанных с ним API, сейчас у нас гораздо больше возможностей для работы с файлами, чем когда-либо в предыдущих версиях браузеров(iOS до сих пор нет поддержки File API).

Тип Файл - File

Тип File определен в спецификации File API[1] и является абстрактным представлением файла. Каждый экземпляр File имеет следующие свойства:
 name – имя файла
 size – размер файла в байтах
 type –  MIME тип файла

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

Получение ссылок на файлы

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

 Когда вы используете элемент <input type="file">, Вы даете веб странице (и серверу) разрешение на доступ к файлу.  Так, что первое, как вы можете получить объект File, это поле <input type="file">.

HTML5 определяет файловые ссылки для всех <input type="file"> управления. Эта коллекция FileList, которая представляет собой структуру в виде массива под названием FileList содержащую объекты типа File для каждого выбранного файла в поле <input type="file">  (помните, HTML5 позволяет выбрать несколько файлов в этом элементе управления). Так что в любой момент времени, Вы можете получить доступ к файлам пользователя, которые он  выбрал, с помощью кода вроде этого:

Рассказать друзьям
Подробнее... 12 комментариев

Авторизация на сайте при помощи curl php

Подробности
Категория: Парсеры
Опубликовано: 19 июля 2012
Просмотров: 80801
  • curl
  • simple_html_dom
  • https
  • авторизация
  • cookie
  • login
  • password
  • авторизация по https

Авторизация на сайте при помощи библиотеки cUrl Продолжая цикл статей посвященный парсерам и всем, что с ними связано. В этой статье расскажу про то, как легко можно авторизоваться на любом сайте при помощи библиотеку cUrl php. Для примера я взял один Украинский портал, к которому я собственно и буду подбирать ключики. Для работы нам также понадобится библиотека simple_html_dom 

Рассказать друзьям
Подробнее... 39 комментариев
  1. Работа с файлами в JavaScript, Часть 2: FileReader
  2. Пишем javascript парсер при помощи Google Chrome Extension
  3. Самый удобный DateTimePicker
  4. Модуль Конструктор Яндекс Карт для Joomla

Страница 1 из 11

  • 1
  • 2
  • 3
  • 4
  • ...
  • 6
  • 7
  • 8
  • 9
  • 10
  • Вперед
  • В конец

ПЛАТНОЕ РАЗМЕЩЕНИЕ СТАТЕЙ НА САЙТЕ

Размещение готовой статьи – 350 р.

Написание + размещение статьи (до 2000 слов) – 550 р.
 
Оформить заказ: hr.xdan@yandex.ru

Полезные статьи

  • Joomla сниппеты
  • Joomla ZOO сниппеты
  • PHP сниппеты
  • Yii сниппеты
  • SSH сниппеты и защита сайта
  • CSS сниппеты
  • JavaScript сниппеты

Популярные статьи

  • Учимся парсить сайты с библиотекой PHP Simple HTML DOM Parser 2011-03-18 12:33:20

  • Примеры работы с ajax на jQuery 2011-03-01 21:04:00

  • Как написать универсальный парсер сайтов за 1 час 2014-04-25 09:36:58

  • Работа с файлами в JavaScript, Часть 1: Основы 2012-06-25 22:02:14

  • Авторизация на сайте при помощи curl php 2012-07-19 02:33:00

Авторизация через сервисы

         

  • Забыли пароль?
  • Забыли логин?
  • Регистрация

Категории

  • JavaScript
  • PHP
  • Новости Web технологий
  • Soft
  • Парсеры
  • CMS
  • Социальные сети
  • Из жизни
  • Политика
  • Мои разработки
  • Новости сайта
  • SEO
  • Защита сайта
  • Администрирование WEB сервера
  • Монетизация сайта
  • web разработка
  • Железо
  • Хостинг
  • Игры
  • Про кино
  • Нативное программирование
  • Видео
Как скопировать любой сайт?

© 2020 Все о web разработке на xdan.ru

  • О сайте
  • Об авторе
Go Top