Оцените скрипт парсинга

12
[Удален]
1339

Оцените скрипт парсинга (не цену, а как написан скрипт)


<?php
//парсер сайта http://znachenie.ru/znachenie_familii/letter/1
$max[1] = 18;
$max[2] = 24;
$max[3] = 17;
$max[4] = 19;
$max[5] = 15;
$max[6] = 9;
$max[7] = 4;
$max[8] = 8;
$max[9] = 6;
$max[10] = 42;
$max[11] = 16;
$max[12] = 27;
$max[13] = 13;
$max[14] = 10;
$max[15] = 29;
$max[16] = 12;
$max[17] = 38;
$max[18] = 21;
$max[19] = 5;
$max[20] = 11;
$max[21] = 8;
$max[22] = 3;
$max[23] = 13;
$max[24] = 14;
$max[25] = 3;
$max[26] = 1;
$max[27] = 3;
$max[28] = 6;

//создаём файл, в который будем сохранять фамилии и их значение
$file = fopen ("fam.txt", "w");

for ($i=1;$i<=28;$i++)
{
for ($j=1;$j<=$max[$i];$j++)
{
//скачиваем список фамилий
$list = file_get_contents ("http://znachenie.ru/znachenie_familii/letter/$i/$j");
//парсим список фамилий
$k=strpos($list, 'padding-right: 50px;">') + strlen ('padding-right: 50px;">');
//вырезаем из всей страницы со списком фамилий, только ссылки на фамилии
$list = substr($list, $k, strpos ($list, "</div>", $k)-$k);
//в цикле ищем ссылки на фамилии и сами фамилии
$k = 0;
do
{
//ищем ссылку на фамилию
$k=strpos($list, '<a href="', $k) + strlen ('<a href="');
$t=strpos($list, '"', $k);
//link - ссылка на фамилию
$link = substr($list, $k, $t-$k);
//ищем фамилию
$k = $t+2;
$t=strpos($list, '<', $k);
//fam - фамилия
$fam = substr ($list, $k, $t-$k);

//скачиваем страницу, на которой написано значение фамилии
$znach = file_get_contents ("http://znachenie.ru$link");
//ищем значение фамилии
$k1=strpos($znach, '<div style="float: left; padding-right: 10px;">') + strlen ('<div style="float: left; padding-right: 10px;">');
$k1=strpos($znach, '</div>', $k1) + strlen ('</div>');
$t=strpos($znach, "<br><br>", $k1);
//znach_fam - значение фамилии (заодно убираем пустые строки)
$znach_fam = trim(preg_replace("/[\r\n]+/m", "", substr($znach, $k1, $t-$k1)));
//echo "ссылка на фамилию: $link, фамилия: $fam, значение фамилии: $znach_fam<br><br><br>";

//записываем данные в файл
fputs ($file, "$fam@$znach_fam\r\n");

}
while (strpos($list, '<a href="', $k) != "");
//exit;
}
}
fclose ($file);

echo "Done";
?>
Jekyll
На сайте с 04.05.2009
Offline
136
#1

оценить? 20 рублей :)

sirota77
На сайте с 08.09.2008
Offline
161
#2
farizor:
Оцените скрипт парсинга.

программирование это не ваше

занимайтесь лучше спамом по соц-закладкам :)

Bitman
На сайте с 05.07.2009
Offline
112
#3

Если работает, то и ладно.

Северный лес (https://euro-vagonka.by) DREW (https://drew.by) AvtoDrive (https://avtodrive.by)
Pan4eZzz
На сайте с 28.07.2009
Offline
35
#4

wtf? xDD

Prior
На сайте с 03.03.2008
Offline
194
#5

Зачем этот изврат с массивом количества страниц для каждой буквы? Проще парсить пока парсится ... if you know what i mean.

Использовать название массива ($max), совпадающее с названием функции - не комильфо.

Если уже используете регулярку ("$znach_fam = trim(preg_replace("/[\r\n]+/m", "", substr($znach, $k1, $t-$k1))); ") - используйте её и в остальных местах выдирания данных со страницы.

Ответы на вопрос - https://answers.net.pl
Dreammaker
На сайте с 20.04.2006
Offline
569
#6

Нужно придерживаться одно стиля именования переменных - если начали называть их $k, $k1, то и дальше так продолжайте, чтобы у программиста читающего скрипт ум за разум зашёл :)

[Удален]
#7
Prior:
Зачем этот изврат с массивом количества страниц для каждой буквы? Проще парсить пока парсится ... if you know what i mean.

Использовать название массива ($max), совпадающее с названием функции - не комильфо.

Если уже используете регулярку ("$znach_fam = trim(preg_replace("/[\r\n]+/m", "", substr($znach, $k1, $t-$k1))); ") - используйте её и в остальных местах выдирания данных со страницы.

Всё дело в том, что я ничего не понимаю в регулярках.

Вот и спрашиваю: как использовать регулярные выражения в остальных местах выдирания данных со страницы?

Prior
На сайте с 03.03.2008
Offline
194
#8

Первый попавшийся пример парсера с регуляркой.

farizor, учитесь пользоваться поиском. Профессия обязывает. Тут никто разжевывать основные принципы не будет.

Dreammaker
На сайте с 20.04.2006
Offline
569
#9
D
На сайте с 09.07.2009
Offline
79
#10

Вот отличная статья про регулярки - pyha.ru/forum/topic/19.0

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий