2011-11-11 3 views
6

私は映画のinfoboxの内容を取得する必要があります。私は映画の名前を知っています。 1つの方法は、ウィキペディアのページの完全な内容を取得し、次に私が{{Infoboxを見つけるまでそれを解析し、その後、情報の内容を取得することです。Wikipediaのinfoboxの内容

いくつかのAPIやパーサーを使用して同じ方法がありますか?

私はPythonとpywikipediabot APIを使用しています。

私はまた、wikitools APIに精通しています。そのため、誰かがwikitools APIに関連した解決策を持っている場合はpywikipediaの代わりに、その点についても言及してください。

+1

** [mediawiki api:ウィキペディアの記事からインフォボックスを取得する方法](http://stackoverflow.com/questions/7638402/mediawiki-api-how-to-get-infobox-from-a-wikipedia -article)**および** [すべてのWikipedia Infoboxテンプレートとそれらを使用するすべてのページを入手する](http://stackoverflow.com/questions/8000211/get-all-wikipedia-infobox-templates-and-all-pages-using -them)** – hippietrail

+0

テンプレートの包含文字列または解析結果を取得しますか? – Bergi

答えて

6

車輪を改造する代わりに、すでにすべてのWikipediaのinfoboxを簡単に解析可能なデータベース形式に抽出したDBPediaをチェックしてください。

+4

私はこれを提案しましたが、私の教授は私にこのようにしたいと思っています –

+0

ここにはMediaWikiパーサーがたくさんあります:http://www.mediawiki.org/wiki/Alternative_parsers – jpatokal

+0

@jpatokalしかし、どうすればREST操作を使ってDBPediaのinfoboxes。チュートリアルやリソースを指摘して、どうすればいいですか? –

0

pywikipdiabotでwikipageの内容を取得し、mwlib [0]のようなパーサーでinfoboxを検索したり、pywikipediabotを貼り付けてテンプレートツールを使用することもできます。たとえば、textlibには、テンプレートを扱う関数がいくつかあります(ヒント: "#テンプレート関数"を検索してください)。 [1]

[0] - http://pypi.python.org/pypi/mwlib

[1] - http://svn.wikimedia.org/viewvc/pywikipedia/trunk/pywikipedia/pywikibot/textlib.py?view=markup

7

もう一つの大きなMediaWikiのパーサーがmwparserfromhellあります。

In [1]: import mwparserfromhell 

In [2]: import pywikibot 

In [3]: enwp = pywikibot.Site('en','wikipedia') 

In [4]: page = pywikibot.Page(enwp, 'Waking Life')    

In [5]: wikitext = page.get()    

In [6]: wikicode = mwparserfromhell.parse(wikitext) 

In [7]: templates = wikicode.filter_templates() 

In [8]: templates? 
Type:  list 
String Form:[u'{{Use mdy dates|date=September 2012}}', u"{{Infobox film\n| name   = Waking Life\n| im <...> critic film|waking-life|Waking Life}}', u'{{Richard Linklater}}', u'{{DEFAULTSORT:Waking Life}}'] 
Length:  31 
Docstring: 
list() -> new empty list 
list(iterable) -> new list initialized from iterable's items 

In [10]: templates[:2] 
Out[10]: 
[u'{{Use mdy dates|date=September 2012}}', 
u"{{Infobox film\n| name   = Waking Life\n| image   = Waking-Life-Poster.jpg\n| image_size  = 220px\n| alt   =\n| caption  = Theatrical release poster\n| director  = [[Richard Linklater]]\n| producer  = [[Tommy Pallotta]]<br />[[Jonah Smith]]<br />Anne Walker-McBay<br />Palmer West\n| writer   = Richard Linklater\n| starring  = [[Wiley Wiggins]]\n| music   = Glover Gill\n| cinematography = Richard Linklater<br />[[Tommy Pallotta]]\n| editing  = Sandra Adair\n| studio   = [[Thousand Words]]\n| distributor = [[Fox Searchlight Pictures]]\n| released  = {{Film date|2001|01|23|[[Sundance Film Festival|Sundance]]|2001|10|19|United States}}\n| runtime  = 101 minutes<!--Theatrical runtime: 100:40--><ref>{{cite web |title=''WAKING LIFE'' (15) |url=http://www.bbfc.co.uk/releases/waking-life-2002-3|work=[[British Board of Film Classification]]|date=September 19, 2001|accessdate=May 6, 2013}}</ref>\n| country  = United States\n| language  = English\n| budget   =\n| gross   = $3,176,880<ref>{{cite web|title=''Waking Life'' (2001)|work=[[Box Office Mojo]] |url=http://www.boxofficemojo.com/movies/?id=wakinglife.htm|accessdate=March 20, 2010}}</ref>\n}}"] 

In [11]: infobox_film = templates[1] 

In [12]: for param in infobox_film.params: 
      print param.name, param.value 

name    Waking Life 

image   Waking-Life-Poster.jpg 

image_size  220px 

alt    

caption   Theatrical release poster 

director   [[Richard Linklater]] 

producer   [[Tommy Pallotta]]<br />[[Jonah Smith]]<br />Anne Walker-McBay<br />Palmer West 

writer   Richard Linklater 

starring   [[Wiley Wiggins]] 

music   Glover Gill 

cinematography Richard Linklater<br />[[Tommy Pallotta]] 

editing   Sandra Adair 

studio   [[Thousand Words]] 

distributor  [[Fox Searchlight Pictures]] 

released   {{Film date|2001|01|23|[[Sundance Film Festival|Sundance]]|2001|10|19|United States}} 

runtime   101 minutes<!--Theatrical runtime: 100:40--><ref>{{cite web |title=''WAKING LIFE'' (15) |url=http://www.bbfc.co.uk/releases/waking-life-2002-3|work=[[British Board of Film Classification]]|date=September 19, 2001|accessdate=May 6, 2013}}</ref> 

country   United States 

language   English 

budget   

gross   $3,176,880<ref>{{cite web|title=''Waking Life'' (2001)|work=[[Box Office Mojo]] |url=http://www.boxofficemojo.com/movies/?id=wakinglife.htm|accessdate=March 20, 2010}}</ref> 

はのparamsがあまりにもmwparserfromhellオブジェクトであることを忘れないでください!

関連する問題