web-dev-qa-db-ja.com

映画の上映時間APIはありますか?

誰もが郵便番号で映画の上映時間にアクセスするための(できれば無料の)サポートされているAPIを知っていますか?

Netflixやimdbなどの既存のapiがこの情報を提供するとは思わない。

70
jhofman

「allow_url_fopen」が無効になっている場合は、

    <?php
/**
 * Google Showtime grabber
 * 
 * This file will grab the last showtimes of theatres nearby your zipcode.
 * Please make the URL your own! You can also add parameters to this URL: 
 * &date=0|1|2|3 => today|1 day|2 days|etc.. 
 * &start=10 gets the second page etc...
 * 
 * Please download the latest version of simple_html_dom.php on sourceForge:
 * http://sourceforge.net/projects/simplehtmldom/files/
 * 
 * @author Bas van Dorst <[email protected]>
 * @version 0.1 
 * @package GoogleShowtime
 *
 * @modifyed by stephen byrne <[email protected]>
 * @GoldMinelabs.com 
 */

require_once('simple_html_dom.php');

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, 'http://www.google.ie/movies?near=dublin');  
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);  
$str = curl_exec($curl);  
curl_close($curl);  

$html = str_get_html($str);

print '<pre>';
foreach($html->find('#movie_results .theater') as $div) {
    // print theater and address info
    print "Theate:  ".$div->find('h2 a',0)->innertext."\n";
    //print "Address: ". $div->find('.info',0)->innertext."\n";

    // print all the movies with showtimes
    foreach($div->find('.movie') as $movie) {
        print "Movie:    ".$movie->find('.name a',0)->innertext.'<br />';
        print "Time:    ".$movie->find('.times',0)->innertext.'<br />';
    }
    print "\n\n";
}

// clean up memory
$html->clear();
?>
16
ste_burn

はい、Yahooは明らかに2009年11月に彼らの秘密の映画APIを削除しました。
誰もがTMS Data Directからデータを取得しているようです: http://www.tmsdatadirect.com/

8
broox

Googleがそれをapiとして公開しているかどうかはわかりませんが、これはあなたが望むものによく似ています。 http://www.google.com/movies?hl=ja&near=90210&dq=movie+times+90210&sa=X&oi=showtimes&ct=title&cd=1

7
toad

質問を投稿する前にもう少し検索してください。

一部の del.icio.usでのクリエイティブ検索 は、文書化されていないyahooを明らかにしました! movies api( api呼び出しのサンプル )。

いい感じ。

2
jhofman

私も合法的にこすって再公開できる上映時間を探しています。ヤフーの音は、商業目的でやらないといけない、禁止されていない、というか、それは私の側の希望的観測だと思う。

商業目的、Yahoo!サービス

1
MM.

少し調べてみると、Dapper(open.dapper.net)がこのタイプのフィードを作成するための優れたソリューションであることがわかりました...

これが私が作成したフィードで、映画のタイトルと郵便番号をパラメーターとして受け取ります。 (他のほとんどはZipでのみ検索可能)

http://www.dapper.net/dapp-howto-use.php?dappName=GoogleMoviesbynameANDzip

セットアップに約5分かかりました...

1
bitless

Fandangoには、近くの映画を検索できるRSSフィードがあるようです。

http://www.fandango.com/rss/moviefeed

1
Samg

これからhtmlをスクレイピングすることが合法かどうかはわかりませんが、私が見つけた最もクリーンな擬似APIです。 http://opensocial.flixster.com/igoogle/showtimes?date=20111025&postal=23226 -HTMLを次のようなもので削るだけです...

$('div.showtime', response).each(function() {
   // ... process each showtime div
});
1
Ian Davis

私の推測では、(これらの人がRSSフィードを持っている場合を除いて)最善の策は、正規表現をサポートする言語でHTMLをスクレイピングすることです。

気を付けてください、それは見苦しく、彼らがコードを変更するたびに、あなたのコードは壊れます。

0
user54650

見つかりません。

Yahoo Moviesからスクリーンスクレイピングを試すことができます: http://movies.yahoo.com/showtimes/movie?z=60630&date=20090113&mid=1810038822

z    = Zip code
date = year + month + day (as a string)
mid  = movieID, which you will have to grab from Yahoo Movies
0
EndangeredMassa

私もショータイムAPIを探していましたが、あなたのように、映画の上映時間に適したAPIは見つかりませんでした。 Google Showtimesに基づいて、独自の「showtime API」を作成することにしました。チェックアウトしてください。

これは単純なPHPスクリプトですが、「実行すべきことを実行します」:

    <?php
/**
 * Google Showtime grabber
 * 
 * This file will grab the last showtimes of theatres nearby your zipcode.
 * Please make the URL your own! You can also add parameters to this URL: 
 * &date=0|1|2|3 => today|1 day|2 days|etc.. 
 * 
 * Please download the latest version of simple_html_dom.php on sourceForge:
 * http://sourceforge.net/projects/simplehtmldom/files/
 * 
 * @author Bas van Dorst <[email protected]>
 * @version 0.1 
 * @package GoogleShowtime
 */

require_once('simple_html_dom.phps');

$html = new simple_html_dom();
$html->load_file('http://www.google.nl/movies?mid=&hl=en&near=1400AB');

print '<pre>';
foreach($html->find('#movie_results .theater') as $div) {
    // print theater and address info
    print "Theate:  ".$div->find('h2 a',0)->innertext."\n";
    print "Address: ". $div->find('.info',0)->innertext."\n";

    // print all the movies with showtimes
    foreach($div->find('.movie') as $movie) {
        print "\tMovie:    ".$movie->find('.name a',0)->innertext.'<br />';
        print "\tTime:    ".$movie->find('.times',0)->innertext.'<br />';
    }
    print "\n\n";
}

// clean up memory
$html->clear();

?> 

例:http:// code.basvd.nl/showtime_grabber_0.1/Google_showtime.php

Simple_html_dom.phpをダウンロード:http:// code.basvd.nl/showtime_grabber_0.1/

0
Bas van Dorst