从 API 获取维基百科页面段落

发布于 2025-01-15 08:07:30 字数 402 浏览 4 评论 0原文

如何从 Wikipedia API 获取段落页面?

例如,我想得到以下段落: https://fr.wikipedia.org/wiki/Douarnenez#Urbanisme

我是只能通过以下方式获取整个页面:

https://fr.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&titles=Douarnenez&formatversion=2&rvprop=content&rvslots=*

How to get paragraph page from Wikipedia API ?

For instance, I'd like to get the following paragraph:
https://fr.wikipedia.org/wiki/Douarnenez#Urbanisme

I'm only able to get the entire page with:

https://fr.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&titles=Douarnenez&formatversion=2&rvprop=content&rvslots=*

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人心善变 2025-01-22 08:07:30

学分:回答:如何通过维基百科 api 获取特定部分的文本 - 作者:Florian

我按顺序执行了以下步骤获取您需要的信息。

首先,获取您想要获取的部分的索引 - 为此,使用此端点获取 wiki 页面的部分:

https://fr.wikipedia.org/w/api.php?action=parse&format=json&page=Douarnenez&prop=sections

这是 API 沙箱链接 您可以尝试一下。

在您的具体情况下,我相信它是 index=10

{
  "toclevel": 2,
  "level": 3,
  "line": "Typologie",
  "number": "3.1",
  "index": "10",
  "fromtitle": "Douarnenez",
  "byteoffset": 18641,
  "anchor": "Typologie"
}

然后,使用下一个端点来获取给定部分中的文本:

https://fr.wikipedia.org/w/api.php?action=parse&format=json&page=Douarnenez&prop=wikitext§ion=10&disabletoc=1&utf8=1< /代码>


结果如下 - 这是 API链接沙箱

{
  "parse": {
    "title": "Douarnenez",
    "pageid": 4596068,
    "wikitext": {
      "*": "=== Typologie ===\nDouarnenez est une commune urbaine, car elle fait partie des communes denses ou de densité intermédiaire, au sens de la grille communale de densité de l'[[Institut national de la statistique et des études économiques|Insee]]<ref group=Note>Selon le zonage des communes rurales et urbaines publié en novembre 2020, en application de la nouvelle définition de la ruralité validée le {{date-|14 novembre 2020}} en comité interministériel des ruralités.</ref>{{,}}<ref >{{Lien web |url=https://www.observatoire-des-territoires.gouv.fr/typologie-urbain-rural |titre=Typologie urbain / rural |site=observatoire-des-territoires.gouv.fr |consulté le= 26 mars 2021}}.</ref>{{,}}<ref >{{Lien web |url=https://www.insee.fr/fr/metadonnees/definition/c1472|titre=Commune urbaine - définition |site=Insee.fr|consulté le= 26 mars 2021}}.</ref>{{,}}<ref >{{Lien web |url= https://www.observatoire-des-territoires.gouv.fr/methodes/comprendre-la-grille-de-densite|titre= Comprendre la grille de densité|site=observatoire-des-territoires.gouv.fr |consulté le= 26 mars 2021}}.</ref>. \nElle appartient à l'[[unité urbaine]] de Douarnenez, une unité urbaine monocommunale<ref>{{Lien web|url=https://www.insee.fr/fr/metadonnees/cog/unite-urbaine/UU202029306-douarnenez |titre=Unité urbaine 2020 de Douarnenez|site=insee.fr|consulté le= 26 mars 2021}}.</ref> de {{Unité|13902|habitants}} en 2017, constituant une ville isolée<ref name=\"UU2020\">{{Lien web|url=https://www.insee.fr/fr/information/4802589 |titre=Base des unités urbaines 2020 |date=21 octobre 2020|site=insee.fr |consulté le= 26 mars 2021}}.</ref>{{,}}<ref name=\"UU20202b\">{{Lien web|url=https://www.insee.fr/fr/statistiques/4806684 |titre=Toujours plus d’habitants dans les unités urbaines |auteur=Vianney Costemalle |date=21 octobre 2020 |site=insee.fr |consulté le= 26 mars 2021}}.</ref>."
    }
  }
}

Credits: answer to: How to get a text of a specific section via wikipedia api - by Florian

I followed these steps in order to get the information you need.

First, get the index of the section you want to get - for that, use this endpoint for get the sections of the wiki page:

https://fr.wikipedia.org/w/api.php?action=parse&format=json&page=Douarnenez&prop=sections

Here is the API sandbox link you can try out.

In your specific case, I believe it's index=10:

{
  "toclevel": 2,
  "level": 3,
  "line": "Typologie",
  "number": "3.1",
  "index": "10",
  "fromtitle": "Douarnenez",
  "byteoffset": 18641,
  "anchor": "Typologie"
}

Then, use this next endpoint for get the text in the given section:

https://fr.wikipedia.org/w/api.php?action=parse&format=json&page=Douarnenez&prop=wikitext§ion=10&disabletoc=1&utf8=1

The result is as follows - here is the link of the API sandbox:

{
  "parse": {
    "title": "Douarnenez",
    "pageid": 4596068,
    "wikitext": {
      "*": "=== Typologie ===\nDouarnenez est une commune urbaine, car elle fait partie des communes denses ou de densité intermédiaire, au sens de la grille communale de densité de l'[[Institut national de la statistique et des études économiques|Insee]]<ref group=Note>Selon le zonage des communes rurales et urbaines publié en novembre 2020, en application de la nouvelle définition de la ruralité validée le {{date-|14 novembre 2020}} en comité interministériel des ruralités.</ref>{{,}}<ref >{{Lien web |url=https://www.observatoire-des-territoires.gouv.fr/typologie-urbain-rural |titre=Typologie urbain / rural |site=observatoire-des-territoires.gouv.fr |consulté le= 26 mars 2021}}.</ref>{{,}}<ref >{{Lien web |url=https://www.insee.fr/fr/metadonnees/definition/c1472|titre=Commune urbaine - définition |site=Insee.fr|consulté le= 26 mars 2021}}.</ref>{{,}}<ref >{{Lien web |url= https://www.observatoire-des-territoires.gouv.fr/methodes/comprendre-la-grille-de-densite|titre= Comprendre la grille de densité|site=observatoire-des-territoires.gouv.fr |consulté le= 26 mars 2021}}.</ref>. \nElle appartient à l'[[unité urbaine]] de Douarnenez, une unité urbaine monocommunale<ref>{{Lien web|url=https://www.insee.fr/fr/metadonnees/cog/unite-urbaine/UU202029306-douarnenez |titre=Unité urbaine 2020 de Douarnenez|site=insee.fr|consulté le= 26 mars 2021}}.</ref> de {{Unité|13902|habitants}} en 2017, constituant une ville isolée<ref name=\"UU2020\">{{Lien web|url=https://www.insee.fr/fr/information/4802589 |titre=Base des unités urbaines 2020 |date=21 octobre 2020|site=insee.fr |consulté le= 26 mars 2021}}.</ref>{{,}}<ref name=\"UU20202b\">{{Lien web|url=https://www.insee.fr/fr/statistiques/4806684 |titre=Toujours plus d’habitants dans les unités urbaines |auteur=Vianney Costemalle |date=21 octobre 2020 |site=insee.fr |consulté le= 26 mars 2021}}.</ref>."
    }
  }
}
寄居人 2025-01-22 08:07:30

您可以使用正则表达式来过滤掉您的段落。这并不漂亮,但有效。
例如:

((?<=== Urbanisme ==).*?(?=\\n== ))

这将选择从 Urbanism 段落标题后面开始并在下一个段落标题之前结束的所有内容。请参阅:https://regex101.com/r/LlGSay/1

You can use Regex to filter out your paragraph. That's not beautiful, but works.
For example:

((?<=== Urbanisme ==).*?(?=\\n== ))

This selects everything starting behind the headline of the Urbanism paragraph and ending before the next paragraph headline. See: https://regex101.com/r/LlGSay/1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文