3

ウェブページ上

http://services.runescape.com/m=itemdb_rs/Armadyl_chaps/viewitem.ws?obj=19463

ゲーム内の特定のアイテムの価格がリストされています。そのアイテムの「現在のガイド価格:」を取得し、それを変数として保存して、Google スプレッドシートに出力できるようにしたいと考えていました。現在は「643.8k」ですが、そのような特定のテキストを取得する方法がわかりません。

数値は「k」形式なので、グラフ化できないことを意味します。グラフ化するには、643,800 のようにする必要があります。私はそれのための式を持っています.2番目の質問は、引き出された数値に式を使用できるかどうかを知り、それを最終出力として保存することですか?

-編集-

これは私がこれまでに持っているものであり、理由がわかりません。

function pullRuneScape() {

var page = UrlFetchApp.fetch("http://services.runescape.com/m=itemdb_rs/Armadyl_chaps/viewitem.ws?obj=19463").getContentText();

  var number = page.match(/Current guide price:<\/th>\n(\d*)/)[1];

  SpreadsheetApp.getActive().getSheetByName('RuneScape').appendRow([new Date(), number]);

}
4

4 に答える 4

1

あなたの正規表現は間違っています。私はこれをうまくテストしました:

var number = page.match(/Current guide price:<\/th>\s*<td>([^<]*)<\/td>/m)[1];

機能:

  1. Current guide price:<\/th>現在のガイド価格を検索: および終了 td タグ
  2. \s*<td>タグ間の空白を許可し、開始 td タグを見つけます
  3. ([^<]*)グループを構築し、この文字以外のすべてに一致 <
  4. <\/td>終了 td タグに一致
  5. /m複数行に一致
于 2013-05-22T15:01:04.670 に答える
1

UrlFetch を使用してページを取得します [1]。GetBlob [2] で読み取ることができる HTTPResponse が返されます。テキストを取得したら、正規表現を使用できます。この場合、 「現在のガイド価格:」を検索して、次の行を読んでください。「k」を削除するには、次のように正規表現に置き換えるだけです。

'123k'.replace(/k/g,'')

'123' だけを返します。

  1. https://developers.google.com/apps-script/reference/url-fetch/
  2. https://developers.google.com/apps-script/reference/url-fetch/http-response
于 2013-05-09T03:20:22.777 に答える