Przejdź do treści głównej

SE::Wikipedia::Article - scraper artykułów Wikipedia

Przegląd scrapera

Scraper artykułów Wikipedia. Na wejściu podawany jest link do artykułu (lub krótki format lang:title), na wyjściu — pełny tekst artykułu w plain text, krótki opis, link kanoniczny, thumbnail i oryginalny obraz, kategorie, wersje językowe, Wikidata ID oraz metadane rewizji.

Dane są pobierane przez oficjalne MediaWiki Action API (prop=extracts|info|pageimages|...). Język jest określany na podstawie adresu URL lub prefiksu zapytania. Przekierowania Wikipedii są obsługiwane automatycznie (na przykład USAUnited States).

Do wyszukiwania artykułów według słów kluczowych należy użyć scrapera SE::Wikipedia.

Funkcjonalność A-Parser pozwala zapisywać ustawienia scrapowania do późniejszego wykorzystania (presety), ustalać harmonogram scrapowania i wiele więcej. Zapisywanie wyników jest możliwe w dowolnej formie i strukturze, dzięki wbudowanemu potężnemu silnikowi szablonów Template Toolkit.

Zbierane dane

Dane są zbierane przez API https://{lang}.wikipedia.org/w/api.php.

  • Tytuł artykułu (title)
  • Krótki opis (description)
  • Pełny tekst artykułu w plain text (text)
  • Link kanoniczny (link)
  • Podgląd obrazu (thumb)
  • Oryginalny obraz (image)
  • Page ID (pageid)
  • Rozmiar artykułu w bajtach (size)
  • Język wydania (lang)
  • Wikidata ID (wikidata)
  • Czas ostatniej rewizji (timestamp)
  • ID rewizji (revid)
  • Lista kategorii (categories)
  • Wersje językowe artykułu (langlinks: lang, title, link)
  • Surowa odpowiedź JSON z API (data)

Możliwości

  • Parsowanie linków Wikipedia w wersji desktop, mobile oraz index.php
  • Krótki format zapytania lang:title
  • Automatyczne podążanie za przekierowaniami
  • Pełny plain text artykułu (bez HTML/Markdown)
  • Kategorie i linki językowe z limitem API max (do 500)
  • Wsparcie dla proxy i ogólnych ustawień A-Parser

Warianty zastosowania

  • Eksport tekstów artykułów dla NLP, RAG i baz wiedzy
  • Zbieranie opisów i obrazów dla kart produktów i botów
  • Pobieranie kategorii i wersji językowych strony
  • Wzbogacanie wyników SE::Wikipedia o pełny tekst artykułu

Zapytania

Obsługiwane formaty zapytań:

  1. Standardowy link:
https://en.wikipedia.org/wiki/Albert_Einstein
https://ru.wikipedia.org/wiki/Ефремов,_Иван_Антонович
  1. Link mobilny:
https://en.m.wikipedia.org/wiki/Albert_Einstein
  1. Link typu index.php:
https://en.wikipedia.org/w/index.php?title=Albert_Einstein
  1. Z kotwicą sekcji (#... jest ignorowane):
https://en.wikipedia.org/wiki/Albert_Einstein#Scientific_career
  1. Krótki format lang:title:
en:Albert Einstein
pl:Jefriemow, Iwan Antonowicz
eo:Esperanto

Poprawnie obsługiwane są również URL-encoding, _ w tytule, przekierowania oraz kody języków z myślnikiem (be-tarask).

Warianty wyprowadzania wyników

A-Parser obsługuje elastyczne formatowanie wyników dzięki wbudowanemu silnikowi szablonów Template Toolkit, co pozwala na wyprowadzanie wyników w dowolnej formie, a także w strukturze takiej jak CSV lub JSON.

Wyprowadzanie domyślne

Format wyniku:

$link\n$title\n$description\n$text\n

Przykład wyniku:

https://en.wikipedia.org/wiki/Albert_Einstein
Albert Einstein
German-born theoretical physicist (1879–1955)
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 arises from special relativity, has been called "the world's most famous equation". He received the 1921 Nobel Prize in Physics for "his services to theoretical physics, and especially for his discovery of the law of the photoelectric effect".
Born as a subject to the Kingdom of Württemberg, part of the German Empire, Einstein moved to Switzerland in 1895, forsaking his citizenship the following year. In 1896, at the age of seventeen, he enrolled in the mathematics and physics teaching diploma program at the Swiss federal polytechnic school in Zurich, graduating in 1900. He acquired Swiss citizenship a year later, which he kept for the rest of his life, and afterwards secured a permanent position at the Swiss Patent Office in Bern. In 1905, he submitted a successful PhD dissertation to the University of Zurich. In 1914, he moved to Berlin to join the Prussian Academy of Sciences and the Humboldt University of Berlin, becoming director of the Kaiser Wilhelm Institute for Physics in 1917; he also became a Prussian and consequently also German citizen again. In 1933, while Einstein was visiting the United States, Adolf Hitler came to power in Germany. Horrified by the Nazi persecution of his fellow Jews, he decided to remain in the US, and was granted American citizenship in 1940. On the eve of World War II, he endorsed a letter to President Franklin D. Roosevelt alerting him to the potential German nuclear weapons program and recommending that the US begin similar research, later carried out as the Manhattan Project.
...

Format wyniku:

$title\t$description\t$link\n

Przykład wyniku:

Albert Einstein German-born theoretical physicist (1879–1955)   https://en.wikipedia.org/wiki/Albert_Einstein

Wyprowadzanie do CSV

Format wyniku:

[% tools.CSVline(title, description, link, pageid, wikidata, lang, size) %]

Tekst początkowy:

Tytuł,Opis,Link,Page ID,Wikidata,Język,Rozmiar

Przykład wyniku:

"Albert Einstein","German-born theoretical physicist (1879–1955)",https://en.wikipedia.org/wiki/Albert_Einstein,736,Q937,en,238698

Kategorie

Format wyniku:

$categories.format('$name\n')

Przykład wyniku:

1879 births
1955 deaths
19th-century American Jews
19th-century German Jews
19th-century Swiss Jews
20th-century American engineers
20th-century American inventors
20th-century American letter writers
20th-century American male writers
20th-century American physicists

Format wyniku:

$langlinks.format('$lang\t$title\t$link\n')

Przykład wyniku:

ab  Einstein, Albert    https://ab.wikipedia.org/wiki/%D0%95%D0%B8%D0%BD%D1%88%D1%82%D0%B5%D0%B8%D0%BD,_%D0%90%D0%BB%D0%B1%D0%B5%D1%80%D1%82
af Albert Einstein https://af.wikipedia.org/wiki/Albert_Einstein
gsw Albert Einstein https://als.wikipedia.org/wiki/Albert_Einstein
am አልበርት አይንስታይን https://am.wikipedia.org/wiki/%E1%8A%A0%E1%88%8D%E1%89%A0%E1%88%AD%E1%89%B5_%E1%8A%A0%E1%8B%AD%E1%8A%95%E1%88%B5%E1%89%B3%E1%8B%AD%E1%8A%95
de Albert Einstein https://de.wikipedia.org/wiki/Albert_Einstein
ru Einstein, Albert https://ru.wikipedia.org/wiki/%D0%AD%D0%B9%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD,_%D0%90%D0%BB%D1%8C%D0%B1%D0%B5%D1%80%D1%82

Zrzut do JSON

Format wyniku:

[%
obj = {};
obj.title = title;
obj.description = description;
obj.link = link;
obj.pageid = pageid;
obj.wikidata = wikidata;
obj.lang = lang;
obj.json _ "\n"
%]

Przykład wyniku:

{"wikidata":"Q937","link":"https://en.wikipedia.org/wiki/Albert_Einstein","lang":"en","pageid":"736","title":"Albert Einstein","description":"German-born theoretical physicist (1879–1955)"}

Możliwe ustawienia

Scraper nie posiada unikalnych opcji w interfejsie użytkownika: język i tytuł są pobierane z zapytania. Używane są tylko ogólne ustawienia (proxy, retries itp.).