私はboxofficemojo.comで映画のリンクを訪問し、特定の映画の総収益を抽出するスクリプトを作成しようとしています。私はスプレッドシートにプラグインしたいので、私はこれらのスクリプトをGoogle Appsスクリプトとして書いています。Google Apps + HTML + Regexp
私の元の実装は、映画のページで非常に目立ってリストされている国内合計を探していたときにうまくいきました。 (例:http://boxofficemojo.com/movies/?id=clashofthetitans2.htmは、[日付]の時点で「国内合計」の下の「$ 80,882,168」を抽出します)。このスクリプトを拡張して、総生涯Grossesの下にリストされている世界的な総を得るが、私はそうすることができません。ここで
は、問題のコードである理由私はよく分からないします。
function gross(aUrl)
{
var page = UrlFetchApp.fetch(aUrl).getContentText();
var matched = page.match(/Worldwide:<\/b><\/td>.*(\$.*)<td width="25%">/m);
var amt = "$0";
if (matched == null)
{
matched = page.match(/<b>(\$.*)<\/b>.*Distributor:/m);
if (matched != null)
{
amt = matched[1];
}
} else
{
amt = matched[1];
}
return amt;
}
function testGross()
{
var result = gross("http://boxofficemojo.com/movies/?id=clashofthetitans2.htm");
Logger.log(result);
}
それは何の価値があるはずです2番目の正規表現は正常に動作しますが、最初の正規表現は正常に動作しません。testGross()を実行すると、ログに以下のデータが出力されます。
null
$80,882,168
regexpはwww.rubular.comで、私がムービーページにいるときにページソースを表示しただけのデータからテストしました。私は、一致するために返されるページがもう切り捨てられていないことを確信しています。なぜなら、page.match行を、ページ変数の完全な内容で私に電子メールを送る行に置き換えると、私がページソースを閲覧することを選択した場合、私は何を得るでしょう。
ご協力いただければ幸いです。
クール!私は問題が\ s \ Sに含まれている空白と非空白の問題に過ぎないと思う。ありがとう! – tanookiben
はい、それが大きな問題です。あなたがちょうどそれを変更する場合、終了タグはあなたにも "迷惑をかける"でしょう。ところで、なぜあなたはこの質問に答えたとマークしていないのですか? –
申し訳ありませんが、それをどのように回答するかはわかりません:) – tanookiben