Pular para o conteúdo principal

SE::Wikipedia - scraper de busca da Wikipedia

Visão geral do scraper

Scraper de resultados de busca da Wikipedia. Permite pesquisar artigos da enciclopédia por palavras-chave através da MediaWiki Action API oficial e obter resultados estruturados: links, títulos, snippets, descrições curtas, prévias de imagens, identificadores de páginas e tamanho dos artigos.

São suportadas todas as edições de idiomas da Wikipedia (en, ru, de, ja, simple, be-tarask, etc.). Em uma página de resultados — até 20 resultados (limitação de API extracts), paginação — até 50 páginas. Duplicatas entre as páginas são filtradas automaticamente.

A funcionalidade do A-Parser permite salvar configurações de extração de dados para uso posterior (presets), definir agendamentos de extração de dados e muito mais. A gravação dos resultados é possível no formato e estrutura que você necessita, graças ao poderoso motor de modelos integrado Template Toolkit.

Para obter o texto completo do artigo, utilize o scraper SE::Wikipedia::Article.

Dados coletados

Os dados são coletados através da API https://{lang}.wikipedia.org/w/api.php (generator=search).

  • Quantidade total de resultados (totalcount)
  • Link para o artigo
  • Título (anchor)
  • Snippet (plain text extract)
  • Descrição curta (description)
  • Prévia da imagem (se houver)
  • Page ID
  • Tamanho do artigo (bytes)

Recursos

  • Busca em qualquer edição de idioma da Wikipedia (lista de edições)
  • Configuração do comprimento do snippet (até 1200 caracteres — máximo do MediaWiki TextExtracts)
  • Paginação de até 50 páginas × 20 resultados
  • Desduplicação automática de artigos entre as páginas de resultados
  • Suporte a proxy e configurações gerais do A-Parser

Casos de uso

  • Coleta de bases de links para artigos da Wikipedia
  • Seleção de artigos relevantes por palavras-chave para conteúdo e SEO
  • Obtenção de snippets e descrições para chatbots e sistemas de referência
  • Processamento posterior de artigos através do SE::Wikipedia::Article

Consultas

Como consultas, é necessário indicar frases de pesquisa, por exemplo:

Albert Einstein
Ivan Efremov
Berlin
東京
Kyiv

O idioma da busca é definido nas configurações do scraper (Wikipedia language), e não na consulta.

Substituições de consultas

Você pode utilizar macros integradas para multiplicar as consultas.

Exemplos de formatos de saída

O A-Parser suporta formatação flexível de resultados graças ao motor de modelos integrado Template Toolkit, o que permite gerar resultados em forma arbitrária, bem como em formatos estruturados como CSV ou JSON.

Lista de links (padrão)

Formato do resultado:

$serp.format('$link\n')

Exemplo de resultado:

https://en.wikipedia.org/wiki/Albert_Einstein
https://en.wikipedia.org/wiki/Hans_Albert_Einstein
https://en.wikipedia.org/wiki/Religious_and_philosophical_views_of_Albert_Einstein
https://en.wikipedia.org/wiki/Albert_Brooks
https://en.wikipedia.org/wiki/Einstein_family

Formato do resultado:

$serp.format('$link\t$anchor\t$snippet\n')

Exemplo de resultado:

https://en.wikipedia.org/wiki/Albert_Einstein   Albert Einstein Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist best known for developing the theory of relativity. Einstein also made important contributions to quantum theory. His mass–energy equivalence formula E = mc2, which...
https://en.wikipedia.org/wiki/Hans_Albert_Einstein Hans Albert Einstein Hans Albert Einstein (May 14, 1904 – July 26, 1973) was a Swiss-American engineer, the second child and first son of physicists Albert Einstein and Mileva Marić. He was a professor of hydraulic engineering at the University of California, Berkeley from...
https://en.wikipedia.org/wiki/Religious_and_philosophical_views_of_Albert_Einstein Religious and philosophical views of Albert Einstein Albert Einstein's religious views have been widely studied and often misunderstood. Albert Einstein stated "I believe in Spinoza's God". He did not believe in a personal God who concerns himself with fates and actions of human beings, a view which he...

Saída em CSV

Formato do resultado:

[% FOREACH item IN p1.serp; tools.CSVline(item.link, item.anchor, item.snippet, item.description, item.image, item.pageid, item.size); END %]

Texto inicial:

Link,Título,Snippet,Descrição,Imagem,Page ID,Tamanho

Exemplo de resultado:

https://en.wikipedia.org/wiki/Albert_Einstein,"Albert Einstein","Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist best known for developing the theory of relativity. Einstein also made important contributions to quantum theory. His mass–energy equivalence formula E = mc2, which...","German-born theoretical physicist (1879–1955)",https://upload.wikimedia.org/wikipedia/commons/thumb/2/28/Albert_Einstein_Head_cleaned.jpg/330px-Albert_Einstein_Head_cleaned.jpg?utm_source=en.wikipedia.org&utm_campaign=api&utm_content=thumbnail,736,238698
https://en.wikipedia.org/wiki/Hans_Albert_Einstein,"Hans Albert Einstein","Hans Albert Einstein (May 14, 1904 – July 26, 1973) was a Swiss-American engineer, the second child and first son of physicists Albert Einstein and Mileva Marić. He was a professor of hydraulic engineering at the University of California, Berkeley from...","Swiss-American engineer and educator",https://upload.wikimedia.org/wikipedia/commons/c/c9/Hans-Albert-Einstein-1953.jpg?utm_source=en.wikipedia.org&utm_campaign=api&utm_content=thumbnail_unscaled,1373258,14371

Dump em JSON

Formato do resultado:

[% FOREACH item IN p1.serp;
'{"link":"' _ item.link _ '","anchor":"' _ item.anchor _ '","snippet":"' _ item.snippet _ '"}\n';
END %]

Exemplo de resultado:

{"link":"https://en.wikipedia.org/wiki/Albert_Einstein","anchor":"Albert Einstein","snippet":"Albert Einstein (14 March 1879 – 18 April 1955) was a German-born theoretical physicist best known for developing the theory of relativity. Einstein also made important contributions to quantum theory. His mass–energy equivalence formula E = mc2, which..."}
{"link":"https://en.wikipedia.org/wiki/Hans_Albert_Einstein","anchor":"Hans Albert Einstein","snippet":"Hans Albert Einstein (May 14, 1904 – July 26, 1973) was a Swiss-American engineer, the second child and first son of physicists Albert Einstein and Mileva Marić. He was a professor of hydraulic engineering at the University of California, Berkeley from..."}

Configurações possíveis

Nome do parâmetroValor padrãoDescrição
Pages count5Número de páginas de busca (de 1 a 50). Em cada página até 20 resultados
Wikipedia languageenEdição de idioma da Wikipedia (en, ru, de, ja, simple, be-tarask etc.). Lista de edições
Snippet length250Comprimento do snippet em caracteres (150–1200). Máximo da API TextExtracts — 1200
dica

A API da Wikipedia, em paginações profundas, pode retornar resultados sobrepostos. O scraper remove duplicatas pelo pageid e registra no log quantas foram descartadas.