На многих сайтах манимейкеров и так называемых Интернет-бомжей в правом верхнем углу выведена информация о днях апдейта и выдачи поисковых систем.

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

Смотрим исходный код сайта, с которого будем парсить информацию.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table class="up" width="100%" border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td class="nup">Яндекс тИЦ</td>
		<td class="dup"><acronym title="35 дня(ей) назад">31.08.2009</acronym></td>
	</tr>
	<tr>
		<td class="nup">Google PR</td>
		<td class="dup"><acronym title="103 дня(ей) назад">24.06.2009</acronym></td>
	</tr>
	<tr>
		<td class="nup">Яндекс выдача</td>
		<td class="dup"><acronym title="3 дня(ей) назад">02.10.2009</acronym></td>
	</tr>
</table>

Как видно нужны значения находящиеся в 3 однородных тегах.

1
<acronym title="">Здесь</acronym>

Начинаем писать наш парсер ;-)

1. Берем контент с заданного урла;

1
$uData = file_get_contents ('Здесь URL сайта с которого парсим');

2. Если сайт донор в кодировке windows-1251, а наш использует utf-8, конвертируем через iconv. Если наоборот делаем в обратной последовательности. Ну а если кодировки сопадают не используем данный кусок кода;

1
$uData = iconv ('windows-1251', 'utf-8', $uData);

3. Собственно парсим нужную нам информацию с помощью функции preg_match_all;

1
$fData = preg_match_all ('#<acronym title="(.+)">(.+)</acronym>#Uis', $uData, $update);

4. Теперь мы имеем несколько массивов, отфильтруем нужные нам значения и выведем их;

1
2
3
<div>Яндекс тИЦ < ? echo ($update[2][0]) ?></div>
<div>Google PR < ? echo ($update[2][1]) ?></div>
<div>Яндекс выдача < ? echo ($update[2][2]) ?></div>

5. Общая конструкция парсера выглядит так.

1
2
3
4
5
6
7
8
9
<h3>Апдейты</h3>
< ?
$uData = file_get_contents ('Здесь URL сайта с которого парсим');
$uData = iconv ('windows-1251', 'utf-8', $uData);
$fData = preg_match_all ('#<acronym title="(.+)">(.+)#Uis', $uData, $update);
?>
<div>Яндекс тИЦ < ? echo ($update[2][0]) ?></div>
<div>Google PR < ? echo ($update[2][1]) ?></div>
<div>Яндекс выдача < ? echo ($update[2][2]) ?></div>

Это простая модель парсера. В идеале нужную информацию парсят в файл или БД, запуская парсер по Cron в определенное время и обновляя её, но об этом в следующий раз! ;-)

x


  1. ]]>Сергей]]>
    16 декабря 2009 в 16:09

    Спасибо, а когда пойдет речь о записи в файл? :-) В смысле, когда следующий раз?


  2. ]]>Khlyupin]]>
    25 декабря 2009 в 18:28

    В ближайшее время, 23 дня отсутствовал, об этом читайте в ближайшем посте ;-)


  3. ]]>Сергей]]>
    30 декабря 2009 в 02:11

    Сменился дизайн сайта откуда парсим, там изменили кодировку на UTF, используем iconv :-)


  4. ]]>Khlyupin]]>
    30 декабря 2009 в 18:36

    Мой код совершенно другой и секретен ;-)


  5. ]]>Сергей]]>
    31 декабря 2009 в 14:59

    Ну у меня все работает :-) Уже сделано с сохранением в файл и обновлением через cron раз в два часа ;-)


  6. ]]>Khlyupin]]>
    31 декабря 2009 в 22:44

    Сергей, только сегодня заметил смену дизайна ресурса, наверное было региональное тестирование, на смену кода мне понадобилось 30 секунд ;-)

Оставить комментарий


Апдейты

Яндекс тИЦ
25.08.2010

Google PR
03.04.2010

Яндекс выдача
02.09.2010

Курсы валют

Доллар (ЦБР)
30,6922

Евро (ЦБР)
39,3505

Погода Киров

ночь, +8...+10 °C
ясно, без осадков
утро, +12...+14 °C
малооблачно, без осадков
день, +14...+16 °C
облачно, без осадков
вечер, +8...+10 °C
облачно, без осадков

Полезно почитать


Все права на материалы, размещенные на сайте, охраняются в соответствии с гражданским законодательством РФ.
Материалы не могут быть использованы без письменного разрешения владельца сайта. © 2009-2010 www.blog.khlyupin.ru
]]> ]]>