Код скрипт для парсинга цитатника bash.im (ранее bash.org.ru), с сохранением цитат в mysql-базу.
Запрос в MySQL-базу на создание таблицы для цитат
CREATE TABLE IF NOT EXISTS `bash` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`quote_id` int(11) NOT NULL,
`quote_text` mediumtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
PHP-код парсинга <?php //Отключаем лимит ожидания и объявляем переменные
set_time_limit(0);
$content=NULL;$num_pages=NULL; //Подключение к базе //Подключаемся к базе данных
define ("HOST", "localhost");
define ("DATABASE", "ваша база данных");
define ("MYSQL_USER", "ваш юзер");
define ("MYSQL_PASS", "ваш пароль");
mysql_connect(HOST, MYSQL_USER, MYSQL_PASS);mysql_query("set names utf8");mysql_select_db(DATABASE); //Узнаём кол-во страниц
$content=file_get_contents('http://bash.im/');
preg_match('|max="(.*?)"|is',$content,$num_pages); //Парсим каждую страницу for ($i=1; $i <= $num_pages[1]; $i++){$i2=false; //Грузим страницы, вырезаем цитаты
$content=file_get_contents('http://bash.im/index/'.$i);
$quotes=explode('<span class="date">',$content); foreach($quotes as $quote){ if($i2==false){$i2=true;continue;} //Номер цитаты
preg_match('|class="id">#(.*?)</a>|is',$quote,$quote_id); //Текст цитаты
preg_match('|<div class="text">(.*?)</div>|is',$quote,$quote_text); //Конвертация текста в UTF-8 и экранирование символов
$quote_text=strip_tags(addslashes(htmlspecialchars(trim(iconv("windows-1251","UTF-8",$quote_text[1]))))); //Вписываем в базу if($quote_text!=NULL){mysql_query("INSERT INTO `bash`(`id`,`quote_id`,`quote_text`) VALUES (NULL,'{$quote_id[1]}','{$quote_text}')");}
} //От перенагрузки
sleep(2);
} ?>