【问题标题】:Get movies section from wikipedia one by one从维基百科一一获取电影部分
【发布时间】:2019-05-18 07:33:36
【问题描述】:

我正在尝试从维基百科页面获取电影情节和其他信息。我有电影名称和年份,从中我必须找到准确的电影及其各自的情节,其他信息。

我正在使用维基百科https://en.wikipedia.org/w/api.php?action=query&list=search&format=jsonfm&srsearch=matrix%20incategory:English-language_films

我收到以下回复

{
"batchcomplete": "",
"continue": {
    "sroffset": 10,
    "continue": "-||"
},
"query": {
    "searchinfo": {
        "totalhits": 176
    },
    "search": [
        {
            "ns": 0,
            "title": "The Matrix",
            "pageid": 30007,
            "size": 123422,
            "wordcount": 12668,
            "snippet": "The <span class=\"searchmatch\">Matrix</span> is a 1999 science fiction action film written and directed by the Wachowskis that stars Keanu Reeves, Laurence Fishburne, Carrie-Anne Moss,",
            "timestamp": "2019-05-17T20:53:05Z"
        },

我需要搜索所有电影,而不仅仅是英文电影。我需要直接从搜索中获取情节部分文本。

【问题讨论】:

  • 您使用的是什么 API?你收到什么数据?你要什么数据?你能分享一些例子吗?

标签: php curl mediawiki wiki mediawiki-api


【解决方案1】:

TL;DR

首次安装:

$ pip3 install imdbpy wikipedia

然后:

>>> import wikipedia
>>> from imdb import IMDb
>>> imdb = IMDb()

>>> imdb.search_movie('avengers')
[<Movie id:0848228[http] title:_The Avengers (2012)_>, <Movie id:0203247[http] title:_"Avengers: United They Stand" (1999)_>, <Movie id:2164490[http] title:_Avengers (1987) (VG)_>, <Movie id:4154796[http] title:_Avengers: Endgame (2019)_>, <Movie id:4154756[http] title:_Avengers: Infinity War (2018)_>, <Movie id:2395427[http] title:_Avengers: Age of Ultron (2015)_>, <Movie id:2455546[http] title:_"Avengers Assemble" (2013)_>, <Movie id:1626038[http] title:_"The Avengers: Earth's Mightiest Heroes" (2010)_>, <Movie id:0458339[http] title:_Captain America: The First Avenger (2011)_>, <Movie id:0118661[http] title:_The Avengers (1998)_>, <Movie id:0054518[http] title:_"The Avengers" (1961)_>, <Movie id:1355644[http] title:_Passengers (I) (2016)_>, <Movie id:8836988[http] title:_Avengement (I) (2019)_>, <Movie id:0473445[http] title:_Avenger (2006) (TV)_>, <Movie id:9426186[http] title:_Revenger (2018)_>, <Movie id:2378453[http] title:_Avenged (2013)_>, <Movie id:4296026[http] title:_Avengers Grimm (2015) (V)_>, <Movie id:0491703[http] title:_Ultimate Avengers (2006) (V)_>, <Movie id:0090190[http] title:_The Toxic Avenger (1984)_>, <Movie id:0056174[http] title:_The Avenger (1962)_>]

>>> title = imdb.search_movie('avengers')[0].data['title']
'The Avengers'

>>> wiki_page = wikipedia.page(title)

>>> wiki_page.url
'https://en.wikipedia.org/wiki/Avengers_(comics)'

>>> print(wiki_page.content)

见:

【讨论】:

  • 你能举一个维基百科 API URL 的例子吗?
  • 我已经有一个来自 IMDB 的标题和其他详细信息。我希望 URL 传递标题并从 Wikipedia 获取内容。
  • Alvas 提供了一种在 Python 中获取 wiki 页面的方法。在您的标签中,我看到您使用的是 PHP,对吗?我看到你的问题已经被否决了,这可能是因为你需要分享更多关于你在什么样的环境/语言/框架或其他方面尝试做什么的信息,这样人们才能更好地理解你面临的问题,所以他们可以更好地帮助你。
  • 我只想知道为了获得每部电影的情节,必须将哪些参数传递给 Wikipedia API。如果有人知道 Wikipedia API,他们可以立即回答。只是参数。
  • 您在问题中提到的 API 端点返回一个 JSON,其中包含标题中带有矩阵的所有维基百科页面(还有一些数学页面)。如果您知道如何在搜索中将电影页面与其他(对您无关的)页面区分开来,您可能可以将页面 ID 提供给第二个 API 调用,该调用会获取有关页面的更多信息。请参阅下面的调用中的pageids,不确定这是否仅返回修订版或整个页面内容(因为content=revisions 参数)。但是你可以验证。 en.wikipedia.org/w/…
猜你喜欢
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
相关资源
最近更新 更多