Advertisement
arkanon

lista-orkut

Oct 1st, 2014
1,182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.25 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # lista-orkut
  4. # Arkanon <arkanon@lsd.org.br>
  5. # 2014/10/01 (Wed) 04:58:45 (BRT)
  6.  
  7. # Lista todas as comunidades com nome iniciando em determinada letra
  8. #   em todas as páginas do finado orkut <http://orkut.google.com>
  9. #   para aquela letra.
  10. #
  11. # Ter acesso à listagem completa é, provavelmente, a única forma
  12. #   razoável de achar o amado antro social de antanho :-p, já que a
  13. #   listagem não está em ordem alfabética e para cada letra existem
  14. #   MILHARES de comunidades.
  15. #
  16. # O arquivo .var conterá
  17. #   - o número de páginas de listagem processadas
  18. #   - a quantidade de comunidades encontradas
  19. #   - a hora de início do processamento
  20. #   - o tempo de processamento até ser interrompido ou finalizado
  21. #   - o código da página seguinte a ser processada (que pode ser
  22. #     usado como argumento para reinício em caso de interrupção)
  23. #
  24. # No caso da letra 'e', foram encontradas 1.196.602 comunidades em
  25. #   11.966 páginas em 2h de download e processamento.
  26. #
  27. # O ${codigo} retornado é usado na url
  28. #   <http://orkut.google.com/c${codigo}.html>
  29.  
  30. if [ $# = 0 ]
  31. then
  32.   cat << EOT
  33.  
  34. Use: $(basename $0) <início>
  35.  
  36.      início := letra inicial do nome da comunidade
  37.                  ou
  38.                codigo de pagina de listagem (\$proxima)
  39.  
  40. EOT
  41.   exit
  42. fi
  43.  
  44.   letra=${1,,} # minúscula
  45. proximo=$letra
  46.  pagina=1
  47. prefixo="orkut"
  48. echo "# vim: ts=50" > $prefixo-$letra.txt
  49. while [ "$proximo" ]
  50. do
  51.   url="http://orkut.google.com/l-$proximo.html"
  52.   src=$(lynx -source $url)
  53.   echo "$src" \
  54.    | sed -r 's/></>\n</g' \
  55.    | grep typoSectionTitleFont \
  56.    | grep -Eo -e "c[0-9]+" -e ">[^<]+" \
  57.    | tr "\n" "\t" \
  58.    | sed -r "s/[\t]*\t>/§/g;s/^c//g;s/\tc/\n/g;s/\t$/\n/" \
  59.    | awk -F§ '{print$2"\t"$1}' \
  60.    | tee -a $prefixo-$letra.txt
  61.   proximo=$(
  62.              echo "$src" \
  63.               | sed -r 's/></>\n</g' \
  64.               | grep "next " \
  65.               | uniq \
  66.               | grep -Eo -- "-[^.]+" \
  67.               | cut -d-  -f2
  68.            )
  69.   cat << EOT | tee $prefixo-$letra.var
  70.  
  71.      pagina=$pagina
  72.    listadas=$(($(wc -l $prefixo-$letra.txt | cut -d\  -f1)-1))
  73.      inicio=$(ps ho stime -p $$)
  74.   decorrido=$(ps ho etime -p $$ | tr -d " ")
  75.     proxima=$proximo
  76.  
  77. EOT
  78.   ((pagina++))
  79. done
  80.  
  81. # EOF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement