我的问题在于 2 个部分,但我希望解决 1 个部分可以解决另一个部分。我一直在尝试解析一个页面并获取在论坛线程中找到的所有评论。
使用 RegEx 模式找到评论,其想法是评论中的任何内容都将被读入数组,直到没有更多评论为止。每个评论 div 都遵循这种格式
<div id="post_message_480683" style="margin-right:2px;"> something </div>
我正在尝试定位到“post_message_[some number]”,因为每个数字似乎都是随机生成的,然后得到该特定 div 之间的任何内容。我的第一个问题是我的 RegEx 似乎不起作用我尝试了一些但没有产生任何结果(除了我手动插入帖子消息编号时),这是到目前为止的代码:
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')
会导致错误。这是我在尝试 RegEx 路由之前尝试的最后一次代码尝试:
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); }
}
谢谢阅读!