[Скрипт] Парсер lj на пхп

Тема в разделе "Open Source", создана пользователем reboRn, 16 мар 2009.

Статус темы:
Закрыта.
Модераторы: Amazko, Aste
  1. reboRn

    reboRn

    Регистр.:
    19 июл 2007
    Сообщения:
    278
    Симпатии:
    13
    Ребят кто может помочь склепать на коленке парсер пхп?
    Нужно спарсить базу пользователей лж, прям отсюда http://www.livejournal.ru/ratings/users и сохранить в тхт.
    Я думаю дело 3х минут такое написать, но сам пхп к сожалению не знаю.
     
  2. WuZi

    WuZi Постоялец

    Регистр.:
    2 окт 2008
    Сообщения:
    96
    Симпатии:
    37
    Что-то типа так
    Запускать с ком. строки

    PHP:
    <?php

            $filepath 
    "C:/data.txt";
            
    $p_start 1;
            
    $p_end 10;

            
    $fl fopen($filepath,"a");
            if(!
    $fl)
            {
                print 
    "file not found";
                die();
            }

            for(
    $page $p_start;$page $p_end;$page++)
            {
                
    Sleep(2);
                
    $header "GET /ratings/users?page=".$page." HTTP/1.1\r\n";
                
    $header .= "Host: www.livejournal.ru\r\n";
                
    $header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; uk; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7\r\n";
                
    $header .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
                
    $header .= "Accept-Language: uk,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
                
    $header .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
                
    $header .= "Connection: keep-alive\r\n\r\n";

                
    $sckt fsockopen("www.livejournal.ru",80);
                
    fputs($sckt,$header);

                while(!
    feof($sckt))
                {
                    
    $serv_answer fgets($sckt,2048);

                    if(
    $s strstr($serv_answer,"fn nickname"))
                    {
                        
    $n strpos($s,"live");
                        
    $dat substr($s,30,$n 31);
                        
    fputs($fl,$dat."\n");
                        print 
    $dat."\n";
                    }
                    if(
    $s strstr($serv_answer,"</html>"))
                        break;
                }

                
    fclose($sckt);
            }

            print 
    "Done";
            
    fclose($fl);
    ?>

     
  3. reboRn

    reboRn

    Регистр.:
    19 июл 2007
    Сообщения:
    278
    Симпатии:
    13
    Обьясни пожалуйста как запустить с командной строки?
     
  4. WuZi

    WuZi Постоялец

    Регистр.:
    2 окт 2008
    Сообщения:
    96
    Симпатии:
    37
    reboRn, сначала заполняем переменные

    $filepath - путь к файлу, куда будут сливаться ники
    $p_start - начинаем дампить с этой страницы
    $p_end - заканчиваем до этой

    Например если укажешь $p_star=1 $p_end=4 сдампятся юзеры с страниц:


    http://www.livejournal.ru/ratings/users?page=[B]1[/B]
    http://www.livejournal.ru/ratings/users?page=[B]2[/B]
    http://www.livejournal.ru/ratings/users?page=[B]3[/B]



    Потом Пуск -> Выполнить -> и вводишь C:\php5\php.exe C:\script.php - Сначала путь до php, за ним путь до скрипта
     
  5. reboRn

    reboRn

    Регистр.:
    19 июл 2007
    Сообщения:
    278
    Симпатии:
    13
    А можно запускать с сервера скрипт? прописав локальные адреса как урлы.
    Если нет то откуда взять пхп5? У меня ничего подобного не стоит на компе.
     
  6. WuZi

    WuZi Постоялец

    Регистр.:
    2 окт 2008
    Сообщения:
    96
    Симпатии:
    37
    Ну попробуй. Только что бы открывать урл пхп директива allow_url_fopen должна быть включена.

    А скачать можно например отсюда

    http://ru2.php.net/distributions/php-5.2.6-win32-installer.msi
     
Статус темы:
Закрыта.