Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #+---------------------------------+
- #|Script: autoC 2.3 |
- #|Autor: Francisco Iago Lira Pasos |
- #|Localidade: Teresina - PI |
- #+---------------------------------+
- export version
- export pathdir
- export dirsite
- export total
- export totalloop
- export totalmail
- export totalsite
- export totalp
- export objeto
- export regiao
- export codel
- export codew
- export ci
- export fimloop
- version="1.2"
- padrao="lynx" #Padrão para acessar conteúdos
- echo "============================================================"
- read -p 'Deseja manter o lynx como padrão sim(s) ou não(n)?' wl
- [ "$wl" = "s" ] && echo "Ok! Proseguindo" || padrao="wget"
- echo "============================================================"
- #Verificando se o wget ou lynz estão instalados:
- codew=$(which wget | echo $?)
- codel=$(which lynx | echo $?)
- if [ $codel -ne 0 ] && [ $codew -ne 0 ]; then
- echo "Instale o lynx ou wget!!!!"
- read -p 'Deseja instalá-los agora? ' snwl
- [ "$snwl" = "s" ] && su -c "apt-get install wget lynx"
- else
- #Encontrando o total de páginas encontradas
- # pathdir="www.bing.com"
- # if [ -d $pathdir ]; then
- # rm -rf $pathdir;
- # else
- # echo "O arquivo $pathdir não existe!";
- # fi
- while :
- do
- echo "======================================================================"
- clear
- echo "======================================================================"
- read -p 'Digite o objeto de pesquisa (ex: estamparia, calçados, pizzaria e etc):' obj
- objeto="$(echo $obj | sed 's/ /%20/g')"
- echo "======================================================================"
- clear
- echo "======================================================================"
- read -p 'Digite a região de pesquisa (ex: "teresina" "piaui"):' reg
- regiao="$(echo $reg | sed 's/ /%20/g')"
- echo "======================================================================"
- if [ "$objeto" = "" ] && [ "$regiao" = "" ]
- then
- echo "Alerta: Digite pelo menos um objeto de pesquisa!"
- sleep 2
- continue
- fi
- #Atalho
- if [ "$objeto" = "" ]; then
- dirsite=$(echo "contato%22email%22"$regiao)
- elif [ "$regiao" = "" ]; then
- dirsite=$(echo "contato%22email%22"$objeto)
- elif [ -n $regiao ] && [ -n $regiao ]; then
- dirsite=$(echo "contato+email%22"$objeto"%22"$regiao)
- fi
- if [ -n $objeto ] || [ -n $regiao ]
- then
- break
- fi
- done
- # #Deletar a pasta www...
- # if [ -d $pathdir ]; then
- # rm -rf $pathdir
- # fi
- #Testando conexão
- clear
- echo "======================================="
- echo "Testando sua conexão..."
- echo "======================================="
- tmili=$(ping -c 3 www.bing.com | grep time | sed 's/.*time//' | sed '/=/d' | sed 's/ms//g')
- tseg=$(printf '%.*f\n' 0 $(echo $(echo "$tmili/1000" | bc) | sed "s/\./,/g") | sed "s/,/./g")
- [ $tseg -ge 2 ] && echo "Alerta: Sua conexão está lenta!"
- sleep 3
- echo "======================================="
- echo "Fim do teste..."
- echo "======================================="
- sleep 2
- #Baixando a página do buscador bing
- # wget -E -H -k -K -p https://www.bing.com/search?q=$(echo $dirsite)&first=0
- # [ $tseg -lt 2 ] && sleep 18 || sleep 20
- echo "======================================="
- clear
- echo "======================================="
- #Total de páginas
- dirtotal=www.bing.com/search?q=$(echo $dirsite).html
- totalp=$(cat $dirtotal | \
- sed 's/^[^>]*[>]//; s/[<][^>]*[>]/\n/g; s/[<].*$//' | grep resultados | \
- sed 's/[^0-9]*//g' | sed '/^\s*$/d')
- clear
- echo "============================================================"
- echo "Alerta: Digite múltiplos de 9!"
- read -p "Quantos sites você quer na sua busca?" totalloop
- echo "============================================================"
- clear
- echo "==========================================="
- read -p "Quantos e-mails você deseja? " totalmail
- echo "==========================================="
- if [ $totalloop -gt $totalp ]; then
- echo "==========================================="
- echo "O número de sites que deseja é invalido!"
- echo "==========================================="
- totalloop=$totalp
- fi
- echo "======================================="
- clear
- echo "======================================="
- echo "======================================="
- clear
- echo "================================================"
- read -p "Deseja continuar script de onde parou (s/n)? " sn1
- echo "================================================"
- clear
- echo "======================================="
- echo "Criando lista de sites..."
- echo "======================================="
- if [ "$sn1" = "n" ]; then
- ci=0
- echo "" > .csite
- else
- [ -f site.txt ] && rm site.txt
- ci=$(cat .csite)
- fi
- # calcloop=$(echo "288*$totalloop/500" | bc) #Regra de três simples (minha conveniência)
- # fimloop=$(printf '%.*f\n' 0 $(echo $(echo "$totalloop/9" | bc) | sed "s/\./,/g") | sed "s/,/./g") #Arredonda valor para inteiro
- i=$ci
- if [ "$padrao" = "lynx" ]; then
- INICIO1=$(date +%s)
- for (( i = 0; i <= $totalloop; i++ ))
- do
- totalsite=`cat site.txt | sort | uniq | wc -l`
- if [ $totalsite -gt $totalloop ]; then
- break
- fi
- clear
- echo "======================================="
- echo "Criando lista de sites..."
- echo "Sites processados: $totalsite"
- echo "======================================="
- echo "Número de tentativs: $i"
- echo "SUCCESS: Extracted `wc -l site.txt` and listed them in '`pwd`/urls' file for reference."
- echo $i > .csite
- #Usando o bing para vasculhar a NET
- lynx -dump $(echo "https://www.bing.com/search?q=`echo $dirsite`&first="$i) > gone.tmp
- sed 's/http/\^http/g' gone.tmp | tr -s "^" "\n" | grep http| sed 's/\ .*//g' > gtwo.tmp
- rm gone.tmp
- cat gtwo.tmp | sed '/bing/d;/microsoft/d;/youtube/d;/google/d' | sort | uniq >> site.txt
- rm gtwo.tmp
- sleep 1
- done
- FIM1=$(date +%s)
- tempsite=$(( $FIM1 - $INICIO1 ))
- elif [ "$padrao" = "wget" ]; then
- INICIO1=$(date +%s)
- for (( ; ; ))
- do
- totalsite=`cat site.txt | sort | uniq | wc -l`
- if [ $totalsite -gt $totalloop ]; then
- break
- fi
- clear
- echo "======================================="
- echo "Criando lista de sites..."
- echo "Sites processados: $totalsite"
- echo "======================================="
- echo "Número de tentativs: $i"
- echo $i > .csite
- #Usando o bing para vasculhar a NET
- wget "$(echo "https://www.bing.com/search?q=`echo $dirsite`&first="$i)" -q -O - | sed 's/h="/\n/g;s/href="/\n/g;s/"//g' | grep "http" | sed -n "s/^http:\/\///p" | sed "s/\/$//" | sed '/bing/d;/microsoft/d;/facebook.com/d;/whatsapp/d;/outlook/d;/msn/d' | grep $objeto | sort | uniq >> site.txt
- let i=$i+1
- timebegin=`find site.txt -mtime -1 -type f -exec ls -l {} \; | awk '{print $8}' | sed 's/://g'`
- timefinal=`date +%H%M`
- [ $timebegin -ne $timefinal ] && break
- [ $i -gt 900 ] && break
- done
- FIM1=$(date +%s)
- tempsite=$(( $FIM1 - $INICIO1 ))
- fi
- clear
- echo "======================================="
- clear
- echo "======================================="
- if [ -f e-mail.txt ]; then
- rm e-mail.txt;
- else
- echo "O arquivo e-mail.txt não existe!";
- fi
- clear
- echo "======================================="
- echo "Coletando e-mails..."
- echo "======================================="
- #Extrai contatos e-mail dos sites
- if [ "$sn1" = "s" ]; then
- lineNumber=$(cat .cmail)
- let cont=$lineNumber
- else
- let cont=1
- lineNumber=1
- echo "" > .cmail
- fi
- cont2=1
- tmail=0
- if [ "$padrao" = "lynx" ]; then
- #=========================================
- INICIO2=$(date +%s)
- while read site
- do
- clear
- echo "======================================="
- echo "Criando lista de e-mails..."
- echo "E-mails processados: $tmail"
- echo "======================================="
- echo "Número de tentativas: `echo $cont2`"
- if [ $cont2 -ge $lineNumber ]; then
- echo $cont2 > .cmail
- [ $(echo $site | echo $?) -ne 0 ] && continue #Se o endereço IP não funcionar pule a linha
- lynx -dump $site | grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b" | sort | uniq >> e-mail.txt
- #altavista.com|aol.com|bol.com.br|brturbo.com.br|globo.com|globomail.com|gmail.com|hotmail.com|ibest.com.br|ig.com.br|itelefonica.com.br|live.com|msn.com|outlook.com|pop.com.br|superig.com.br|terra.com.br|uol.com.br|yahoo.com.br|zipmail.com.br
- fi
- let cont2=$cont2+1
- tmail=$(cat e-mail.txt | sort | uniq | wc -l)
- [ $tmail -gt $totalmail ] && break
- done < site.txt
- FIM2=$(date +%s)
- tempmail=$(( $FIM2 - $INICIO2 ))
- #==========================================
- elif [ "$padrao" = "wget" ]; then
- INICIO2=$(date +%s)
- while read site
- do
- clear
- echo "======================================="
- echo "Criando lista de e-mails..."
- echo "E-mails processados: $tmail"
- echo "======================================="
- echo "Número de tentativas: `echo $cont2`"
- if [ $cont2 -ge $lineNumber ]; then
- echo $cont2 > .cmail
- [ $(echo $site | echo $?) -ne 0 ] && continue #Se o endereço IP não funcionar pule a linha
- wget "$site" -q -O - | grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b" | sort | uniq >> e-mail.txt
- #altavista.com|aol.com|bol.com.br|brturbo.com.br|globo.com|globomail.com|gmail.com|hotmail.com|ibest.com.br|ig.com.br|itelefonica.com.br|live.com|msn.com|outlook.com|pop.com.br|superig.com.br|terra.com.br|uol.com.br|yahoo.com.br|zipmail.com.br
- fi
- let cont2=$cont2+1
- tmail=$(cat e-mail.txt | sort | uniq | wc -l)
- [ $tmail -gt $totalmail ] && break
- done < site.txt
- FIM2=$(date +%s)
- tempmail=$(( $FIM2 - $INICIO2 ))
- fi
- #Converter lista para csv
- clear
- echo "======================================="
- echo "Aguarde..."
- echo "======================================="
- a1='e-mail.txt'
- a2="$(echo $(echo $a1 | sed 's/\..*//')".csv")"
- [ -f $a2 ] && rm $a2
- while read i
- do
- name=$(echo $i |sed -r 's/@/ - /g;s/(^.| .)/\U&/g;s/(.*)(\..{3}).*/\1/g')
- echo "$name;$i" >> $a2
- done < $a1
- cat $a2 | sort | uniq > $(echo $a".pop")
- cat $(echo $a".pop") > $a2
- rm $(echo $a".pop")
- #Cabeçalho csv
- #echo "name;E-mail Address" > $a2
- sed -i "1i name;E-mail Address" $a2 #Inseri name;E-mail Address na primeira linha
- clear
- echo "=========================="
- [ $? -eq 0 ] && echo "Concluído com sucesso!" || echo "Aviso: Ocorreu algum erro ao converter $a1 para csv!"
- clear
- echo "======================================="
- clear
- echo "======================================="
- # if [ -d $pathdir ]; then
- # rm -rf $pathdir;
- # else
- # echo "O diretório www.bing.com não existe!";
- # fi
- echo "======================================="
- clear
- echo "======================================="
- cat site.txt | sort | uniq > site
- cat site > site.txt; rm site
- cat e-mail.txt | sort | uniq > email
- cat email > e-mail.txt; rm email
- echo "======================================="
- clear
- echo "======================================="
- # #Renomeando o arquivo
- # if [ -f $(echo $dirsite'_'$(cat e-mail.txt | wc -l)'.txt' | sed 's/+/_/g') ]; then
- # echo ""
- # else
- # cat e-mail.txt > $(echo $dirsite'_'$(cat e-mail.txt | wc -l)'.txt')
- # rm e-mail.txt
- # fi
- echo "---------------------------------------------"
- echo "---------> Conluído com sucesso! <-----------"
- echo "Número de e-mails: $(cat e-mail.txt | wc -l)"
- echo "Tempo de captura de sites: $tempsite segundos"
- echo "Número de sites: $(cat site.txt | wc -l)"
- echo "Tempo de captura de e-mails: $tempmail segundos"
- echo "Tempo de ping a cada 3 tentativas: $tseg segundos
- "
- echo "---------------------------------------------"
- fi
Add Comment
Please, Sign In to add comment