Помогите с граббером на php

Discussion in 'PHP' started by mff, 23 Jan 2015.

  1. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Ребята всем привет. Я ушел в нумизматику :) Нужна ваша помощь!
    Помогите написать граббер для этого раздела: http://www.reviewdetector.ru/index.php?showforum=69
    Нужно выводить топики с окончанием аукциона в определенный день. К примеру за 23.01.2015
    Мне нужен сам граббер, все остальное сам допишу.
    Друзья, очень поможете! За ранее спасибо!
     
  2. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    готовь $$
     
  3. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Вот накорябал гавнокодец:

    PHP:
    <?php
        $file 
    file_get_contents('http://www.reviewdetector.ru/index.php?showforum=69&st=0');
        
    $file preg_match_all('|<div class="desc">(.+)</div>|U',$file,$frazes);
        
    $date_end "окончание ".date("j.m.Y");
        for(
    $i=0$i<$file$i++){
        if(
    $frazes[1][$i]==$date_end){
            echo 
    $frazes[1][$i]."\r\n<hr>";
            }
        }
    ?>
    Как бы мне теперь саму ссылку вывести на топик с аукционом?
    Не кодил пару лет на пышпе, вспоминаю :)
     
  4. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19

    PHP:
    <?php
        $file 
    file_get_contents('http://www.reviewdetector.ru/index.php?showforum=69&st=0'); 
        
    preg_match_all('#<td class="row2" valign="middle">.+<\/td>#Usi',$file,$ms); 
        
        
    $x = function($s){
            
    $r = array();
            
    preg_match('#showtopic=(\d+)#i',$s,$ms);
            
    $r['id'] = $ms[1];
            
    preg_match('#окончание (\d{2}\.\d{2}\.\d{4})#i',$s,$ms);
            
    $r['date'] = $ms[1];
            return 
    $r;
        };
        
    $ms array_map($x$ms[0]);?>
    будет массив вида

    PHP:
    (
        [
    0] => Array
            (
                [
    id] => 977532
                
    [date] => 24.01.2015
            
    )

        [
    1] => Array
            (
                [
    id] => 982451
                
    [date] => 30.01.2015
            
    )
    ...
    id - номер топика
    date - дата окончания
     
    #4 roxblnfk, 23 Jan 2015
    Last edited: 23 Jan 2015
    2 people like this.
  5. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    roxblnfk, спасибо, полезу курить ваш код :)
     
  6. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    ошибка :(
     
  7. yoweb

    yoweb Banned

    Joined:
    17 Jun 2013
    Messages:
    120
    Likes Received:
    2
    Reputations:
    0
    100$
    пиши в ЛС.
     
  8. lifescore

    lifescore Elder - Старейшина

    Joined:
    27 Aug 2011
    Messages:
    651
    Likes Received:
    511
    Reputations:
    72
    Строка 5 синтаксис
    Закрывающяя скобка мб..

    P.s. Не страшно на ревью вообще деятельность какую-либо проявлять финансовую ?)
     
  9. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    для анонимных функций нужен php 5.3
    иначе стоит переписать под обычную функцию :)
    PHP:
    <?php 
        $file 
    file_get_contents('http://www.reviewdetector.ru/index.php?showforum=69&st=0');  
        
    preg_match_all('#<td class="row2" valign="middle">.+<\/td>#Usi',$file,$ms);  
         
        function 
    xx($s){ 
            
    $r = array(); 
            
    preg_match('#showtopic=(\d+)#i',$s,$ms); 
            
    $r['id'] = $ms[1]; 
            
    preg_match('#окончание (\d{2}\.\d{2}\.\d{4})#i',$s,$ms); 
            
    $r['date'] = $ms[1]; 
            return 
    $r
        }
        
    $ms array_map('xx'$ms[0]);?>
     
  10. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Вы о чем?

    Спасибо!
     
  11. lifescore

    lifescore Elder - Старейшина

    Joined:
    27 Aug 2011
    Messages:
    651
    Likes Received:
    511
    Reputations:
    72
    В ЛС отпишу
     
    1 person likes this.