Existe um comando da CLI para contar ocorrências de uma string específica em uma página da Web?

0

Eu quero encontrar o número de vezes que uma página da Web usou uma palavra ou frase específica em vários momentos nos últimos anos; e eu gostaria de fazer isso usando a página de resultados do archive.org como a fonte da página ao longo do tempo.

Estou bastante certo de que existe uma ferramenta de algum tipo que pode fazer uma busca por palavras de uma página da Web, e sei que o archive.org tem todas as páginas prontamente disponíveis ...

mas isso é tanto quanto eu recebo. Eu sou bastante adepto de alguns scripts bash rápidos e sujos e um pouco de python também, mas não tenho nenhuma experiência em acessar diretamente a web. A Internet. Tanto faz. (Veja o nível da minha ignorância ?!)

Eu acho que o que eu quero saber é: o que seria uma boa ferramenta CLI para contagem de palavras de qualquer URL que é passado para ela, e como eu poderia escrever um script que pudesse retornar a URL de ~ 750 seqüencialmente? páginas datadas? Ou - isso é possível?

Tenho certeza de que há alguém que poderia improvisar isso em questão de segundos, em vez de me dar um manual de três parágrafos para que eu possa fazer isso uma vez, mas eu ainda gostaria pelo menos para ver como isso seria feito.

O archive.org tem vários salvamentos por dia e nem sempre o mesmo número. Por isso, gostaria de saber se existe uma maneira de interrogar a página "resultados", seguir cada URL e verificar a data de criação e salvar cada URL que retorna uma nova data em algum arquivo de texto. Isso permitiria que eu criasse uma lista de páginas da Web com data sequencial para a etapa 2 ...

Se existir uma ferramenta desse tipo que possa procurar um url, faça um grep (ou similar) para algum texto b e retorne o número de b que encontrar , execute isso e canalize a saída para um arquivo de texto. Eu uso algumas ferramentas cli que podem fazer esse tipo de ginástica em uma unidade local, mas eu esperava que houvesse um programa que pudesse ser feito:

para xurl em algum arquivo.txt; do wordcount -a = $ xurl -b=" cadeia de pesquisa " > > temp.txt; feito

    
por rpdayton 20.10.2017 / 17:48

2 respostas

1

você pode enrolar o URL e canalizá-lo para o grep assim

curl --silent https://www.google.cl | grep -c -i google

Observe também o -i , que é uma pesquisa sem distinção entre maiúsculas e minúsculas.

Para fazer em lote a partir de um arquivo (um URL por linha)

wordToSearch='google'
#
while read url; do
    curl --silent "${url}" | grep -c -i "${wordToSearch}" >> temp.txt
done < fileWithUrl.txt
    
por bistoco 20.10.2017 / 18:22
1

Não consigo ver como seria a entrada para o seu programa ou a página "resultados" mencionada, mas eis como eu tentaria resolver isso:

curl permite que você baixe o código-fonte de uma página da web. Então curl archive.org/whatever te dá a página de resultados em texto simples.

Você pode canalizar isso para grep e pesquisar as tags de âncora do HTML ( <a href="location.of/the-linked-page">a description of the link</a> ). Aqui está uma chamada grep que pode servir como ponto de partida: | grep -o '<a href.*</a> ( -o imprime apenas as partes correspondentes da string. Talvez seja necessário substituir o espaço entre a e href pela classe space ou experimente com formas não-gananciosas de * , dependendo da sua entrada.) Você também irá recuperar todos links nessa página, então outra (ou múltipla) rodada (s) de grepping é necessária para remover os links de navegação, anúncios, etc.

Depois, usando sed , você remove a "confusão" como <a> , href , etc. para recuperar apenas o link puro. Você pode, então, alimentar a saída em um loop for, que novamente usa o curl para recuperar o conteúdo desses links. Em essa saída, finalmente, você pode realizar sua análise de palavras usando grep -c , como menciona vidarlo.

    
por bleistift2 20.10.2017 / 18:29