Dstarusers.orgのlist加工

USTRUST系のログサイトhttp://http://www.dstarusers.org/ の中で知りたい情報のみlist UPするプログラムを作成してみた。

  1. Webページからの切り取り。最初っから時間でソートした画面を利用。
    -- get_parse.pl --
    use strict;
    use warnings;
    use LWP::UserAgent;
    use HTML::TreeBuilder;
    
    # urlを指定する
    my $url = 'http://www.dstarusers.org/?lastheardsort=4';
    
    # IE8のフリをする
    my $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1;  Trident/4.0)";
    
    # LWPを使ってサイトにアクセスし、HTMLの内容を取得する
    my $ua = LWP::UserAgent->new('agent' => $user_agent);
    my $res = $ua->get($url);
    my $content = $res->content;
    
    # HTML::TreeBuilderで解析する
    my $tree = HTML::TreeBuilder->new;
    $tree->parse($content);
    
    # DOM操作してトピックの部分だけ抜き出す。
    # <div id='topicsfb'><ul><li>....の部分を抽出する
    open (OUT, ">> dstarlist.txt");
    my @items =  $tree->look_down('class', 'systemtbl')->find('td');
    print OUT $_->as_text.":" for @items;
    close(OUT);
  2. 抽出項目を指定して再リスト化
    -- bunkai.sh --
    #!/bin/bash
    if [ -f /home/moto/dstarlist.txt ]; then
      rm -f /home/moto/dstarlist.txt
    fi
    
    if [ -f /home/moto/dstlistx.txt ]; then
      rm -f /home/moto/dstlistx.txt
    fi
    
    /usr/bin/perl /home/moto/get_parse.pl
    
    nkf -a /home/moto/dstarlist.txt > dstlistx.txt
    
    if [ -f /home/moto/dslist.txt ]; then
      rm -f /home/moto/dslist.txt
    fi
    
    N=5
    while :
    do
    M=`expr $N + 5`
    X="$N-$M"
    #echo "$N"
    LS="/bin/cat /home/moto/dstlistx.txt | /usr/bin/cut -d \":\" -f $X >> /home/moto/dslist.txt"
    eval $LS
    N=`expr $N + 6`
    if test $N -gt 1500 ; then
      break
    fi
    done
    cat dslist.txt | grep -e "^7\|^J\|REF008\|REF047"
  3. 応用
    例えば、アクセス時間で新しい方から7局をlist UP する場合は
    $ ./bunkai.sh | head -7
    ide character in print at /home/moto/get_parse.pl line 25. ←データ中に3bite文字があるため。
    JP3KVE:10/08/14 09:30:13 UTC:ZL1VHD B 440 MHz:Auckland, New Zealand
    JA9MIZ A:10/08/14 09:26:38 UTC:JP9YEI A 1.2GHz:Nanto, Toyama-Pref, Japan
    JE1IXA:10/08/14 09:12:51 UTC:JP1YJQ A 1.2GHz:Chiba Inage-Ku, CHIBA, Japan
    JO1WID:10/08/14 09:00:51 UTC:JP1YDS A 1.2GHz:Katori, Chiba, Japan
    JL1LTE:10/08/14 09:00:44 UTC:JP1YDS A 1.2GHz:Katori, Chiba, Japan
    JE3HCZ:10/08/14 08:47:01 UTC:REF047 C 2 Meters DVD:Japan
    JK1MNC:10/08/14 08:41:36 UTC:JP1YJT A 1.2GHz:Yachimata, Chiba, Japan

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White


새로고침   새페이지 Lower page making 잠금해제 비교 복사 이름변경   대문 목록 검색 갱신내역 백업 리퍼러   도움말   갱신내역의 RSS