{% else-1 %}
Код скрипт для парсинга цитатника 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);
}
?>
1 47 0
0

Нет фото
RaPpeR * 0.5
• 6 июн 2015, 12:14


eto kak mogut na johncms