Не большой парсер для sp-fan, grif-fan, simp-fan

Discussion in 'Болталка' started by ZombieXLX, 12 Nov 2015.

  1. ZombieXLX

    ZombieXLX Member

    Joined:
    3 Oct 2015
    Messages:
    32
    Likes Received:
    15
    Reputations:
    0
    На днях написал парсер для закачки серий с этих сайтов(озвучку они хорошую выкладывают но скачивать серии не дают :( ).
    Вот собственно и написал скрипт:
    Code:
    #!/bin/bash
    
    while [ 1 ] ; do
        if [ "$1" = "--links" ] ; then        #Получить линки на файлы
            url="$2"
            name="$3"
            oz="$4"
    list=$(curl $url/$name/)
    cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" | sed -e "s/[$name].*//g")
    muf=$(curl $cur$name/$name"_"$oz.m3u8)
    listf=$(echo "$muf" | grep ts)
    lwc=$(echo "$listf" | wc -l)
        for i in `seq 1 $lwc` ; do
        echo $cur$name/$(echo "$listf" | sed -n ''$i'p')
        done
    
        elif [ "$1" = "--oz" ] ; then        #Посмотреть озвучки
            url="$2"
            name="$3"
    list=$(curl $url/$name/)
    listozw=$(echo "$list" | grep "?v=")
    lwc=$(echo "$listozw" | wc -l)
    let lwc=$(($lwc-1))
    seloz=$(echo "$list" | grep m3u8 | sed -r 's|.*_||' | sed -e 's/[.].*//g')
        for i in `seq 1 $lwc` ; do
    echo "$listozw" | sed -r 's/[^v]+//' | sed -r 's/[=]+//' | sed -r 's/[v]+//' | sed -e 's/".*//g' | sed -n ''$i'p'
        done
    echo $seloz
    
        elif [ "$1" = "--dw" ] ; then        #Скачать серию
            url="$2"
                    name="$3"
                    oz="$4"
    list=$(curl $url/$name/)
    cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" | sed -e "s/[$name].*//g")
    muf=$(curl $cur$name/$name"_"$oz.m3u8)
    listf=$(echo "$muf" | grep ts)
    lwc=$(echo "$listf" | wc -l)
            for i in `seq 1 $lwc` ; do
              echo $cur$name/$(echo "$listf" | sed -n ''$i'p') | wget -i -
        done
            cat $listf > $name.ts
            rm $listf 
    
            elif [ "$1" = "--dws" ] ; then        #Скачать от n и до n серии
                     url="$2"
                     name="$3"
                     oz="$4"
                     st="$5"
                     ed="$6"
        for i in `seq $st $ed` ; do
            sd=$(printf '%02d\n' $i)
                list=$(curl $url/$name$sd/)
             cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" | sed -e "s/[$name$sd].*//g")
                 muf=$(curl $cur$name$sd/$name$sd"_"$oz.m3u8)
           listf=$(echo "$muf" | grep ts)
          lwc=$(echo "$listf" | wc -l)
        for i in `seq 1 $lwc` ; do
         echo $cur$name$sd/$(echo "$listf" | sed -n ''$i'p') | wget -i -
        done
            cat $listf > S$nameE$sd.ts
            rm $listf
        done
    
            elif [ "$1" = "--dwrss" ] ; then          #Скачать с какого по какой сезон
                     url="$2"
                     namef="$3"
                     named="$4"
                     oz="$5"
            st="1"
                     ed="100"         
    for i in `seq $namef $named` ; do
    let k=$k+1
    name=$(($namef+$k-1))
            for i in `seq $st $ed` ; do
                    sd=$(printf '%02d\n' $i)
                   list=$(curl $url/$name$sd/)
                  cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" | sed -e "s/[$name$sd].*//g")
                 muf=$(curl $cur$name$sd/$name$sd"_"$oz.m3u8)
        if [ "$cur" != "" ] ; then
                 listf=$(echo "$muf" | grep ts)
               lwc=$(echo "$listf" | wc -l)
        for i in `seq 1 $lwc` ; do
          echo $cur$name$sd/$(echo "$listf" | sed -n ''$i'p') | wget -i -
            cat $listf > S$nameE$sd.ts
                    rm $listf
            done
                fi
                    done
            done
    
    elif [ -z "$1" ] ; then
        break
    exit 1
    fi
    shift
    done
    

    lala.sh --oz http://www.sp-fan.ru/episode/ 1907 --посмотреть список доступных озвучек
    19 -сезон 07 -серия

    lala.sh --dw http://www.sp-fan.ru/episode/ 1907 ld --скачать фай где 19 - сезон 07 -серия ld -озвучка
     
  2. ZombieXLX

    ZombieXLX Member

    Joined:
    3 Oct 2015
    Messages:
    32
    Likes Received:
    15
    Reputations:
    0
    Допилил
    #!/bin/bash

    while [ 1 ] ; do
    if [ "$1" = "--links" ] ; then #Получить линки на файлы
    url="$2"
    name="$3"
    oz="$4"
    list=$(curl $url/$name/)
    cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" | sed -e "s/[$name].*//g")
    muf=$(curl $cur$name/$name"_"$oz.m3u8)
    listf=$(echo "$muf" | grep ts)
    lwc=$(echo "$listf" | wc -l)
    for i in `seq 1 $lwc` ; do
    echo $cur$name/$(echo "$listf" | sed -n ''$i'p')
    done

    elif [ "$1" = "--oz" ] ; then #Посмотреть озвучки
    url="$2"
    name="$3"
    list=$(curl $url/$name/)
    listozw=$(echo "$list" | grep "?v=")
    lwc=$(echo "$listozw" | wc -l)
    let lwc=$(($lwc-1))
    seloz=$(echo "$list" | grep m3u8 | sed -r 's|.*_||' | sed -e 's/[.].*//g')
    for i in `seq 1 $lwc` ; do
    echo "$listozw" | sed -r 's/[^v]+//' | sed -r 's/[=]+//' | sed -r 's/[v]+//' | sed -e 's/".*//g' | sed -n ''$i'p'
    done
    echo $seloz

    elif [ "$1" = "--dw" ] ; then #Скачать серию
    url="$2"
    name="$3"
    oz="$4"
    list=$(curl $url/$name/)
    srd=$(echo "$name" |rev | cut -c 4-)
    echo $srd
    cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" |rev | sed -r "s/[^/]+//" | sed -r "s/[^/]+//"| cut -c 3-|rev)
    muf=$(curl $cur/$name/$name"_"$oz.m3u8)
    listf=$(echo "$muf" | grep ts)
    lwc=$(echo "$listf" | wc -l)
    for i in `seq 1 $lwc` ; do
    echo $cur/$name/$(echo "$listf" | sed -n ''$i'p') | wget -i -
    done
    cat $listf > $name.ts
    rm $listf

    elif [ "$1" = "--dws" ] ; then #Скачать от n и до n серии
    url="$2"
    name="$3"
    st="$4"
    ed="$5"
    oz="$6"
    for i in `seq $st $ed` ; do
    sd=$(printf '%02d\n' $i)
    list=$(curl $url/$name$sd/)
    cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" |rev | sed -r "s/[^/]+//" | sed -r "s/[^/]+//"| cut -c 3-|rev)
    muf=$(curl $cur$name$sd/$name$sd"_"$oz.m3u8)
    listf=$(echo "$muf" | grep ts)
    lwc=$(echo "$listf" | wc -l)
    for i in `seq 1 $lwc` ; do
    echo $cur$name$sd/$(echo "$listf" | sed -n ''$i'p') | wget -i -
    done
    cat $listf > "S$name Ep$sd.ts"
    rm $listf
    done

    elif [ "$1" = "--dwrss" ] ; then #Скачать с какого по какой сезон
    url="$2"
    namef="$3"
    named="$4"
    oz="$5"
    st="1"
    ed="100"
    for i in `seq $namef $named` ; do
    let k=$k+1
    name=$(($namef+$k-1))
    for i in `seq $st $ed` ; do
    sd=$(printf '%02d\n' $i)
    list=$(curl $url/$name$sd/)
    cur=$(echo "$list" | grep m3u8 | sed -r "s/[^h]+//" |rev | sed -r "s/[^/]+//" | sed -r "s/[^/]+//"| cut -c 3-|rev)
    muf=$(curl $cur/$name$sd/$name$sd"_"$oz.m3u8)
    if [ "$cur" != "" ] ; then
    listf=$(echo "$muf" | grep ts)
    lwc=$(echo "$listf" | wc -l)
    for i in `seq 1 $lwc` ; do
    echo $cur/$name$sd/$(echo "$listf" | sed -n ''$i'p') | wget -i -
    done
    cat $listf > "S$name Ep$sd.ts"
    rm $listf
    else
    echo Not get URL BITCH!
    fi
    done
    done

    elif [ -z "$1" ] ; then
    break
    exit 1
    fi
    shift
    done