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
Links + títulos + snippets
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âmetro | Valor padrão | Descrição |
|---|---|---|
| Pages count | 5 | Número de páginas de busca (de 1 a 50). Em cada página até 20 resultados |
| Wikipedia language | en | Edição de idioma da Wikipedia (en, ru, de, ja, simple, be-tarask etc.). Lista de edições |
| Snippet length | 250 | Comprimento do snippet em caracteres (150–1200). Máximo da API TextExtracts — 1200 |
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.