私の問題は2つの部分にありますが、1つを解決することでもう1つが解決されることを願っています。ページを解析して、フォーラム スレッド内で見つかったすべてのコメントを取得しようとしています。
コメントは RegEx パターンを使用して検出されます。これは、コメントがなくなるまで、コメントにあるものはすべて配列に読み込まれるという考え方です。各コメント div はこの形式に従います
<div id="post_message_480683" style="margin-right:2px;"> something </div>
各番号はランダムに生成され、その特定の div の間にあるものを取得するように見えるため、「post_message_[some number]」まで検索しようとしています。私の最初の問題は、正規表現が機能していないように見えることです。いくつか試してみましたが、何も結果が得られませんでした (投稿メッセージ番号を手動で挿入した場合を除く)。これまでのコードは次のとおりです。
function GetPosts() {
var posts = new Array(60);
var url = "http://forums.blackmesasource.com/showthread.php?p=480683";
var geturl = UrlFetchApp.fetch(url).getContentText().toString();
var post_match = geturl.match(/<div id="post_message_(.+)" style="margin-right:2px;">(\w.+)<\/div>/m);
Logger.log(post_match);
}
編集: 最初に、GAS の Xml.Parse() クラスを介してこの情報を取得しようとしましたが、URL を取得した後、接尾辞を付けてから何をすべきかわかりませんでした
.getElement().getElement('div') (I also tried .getElements('div') and other variations with 'body' & 'html')
エラーの原因になります。正規表現ルートを試す前に試した最後のコードは次のとおりです。
function TestArea() {
var url = "http://forums.blackmesasource.com/showthread.php?p=480683";
var geturl = UrlFetchApp.fetch(url).getContentText().toString();
//after this point things stop making sense
var parseurl = Xml.parse(geturl, true);
Logger.log(geturl);
//None of this makes sense because I don't know HOW!
//The idea: Store each cleaned up Message Div in an Array called posts
//(usually it's no more than 50 per page)
//use a for loop to write each message into a row in GoogleSpreasheet
for (var i = 0; i <= parseurl - 1; i++) {
var display = parseurl[i];
Logger.log(parseurl); }
}
読んでくれてありがとう!