如何让iMacros脚本展开Facebook墙,然后展开所有评论

时间:2014-10-03 18:07:17

标签: facebook firefox imacros

我正在尝试扩展Facebook墙,然后在扩展墙上显示所有评论。

手动,这可以通过访问墙壁的链接然后连续向下滚动来实现,从而逐步显示页面,直到显示所有页面。然后,将选择View * more comments形式的可选文本的每个实例,从而使页面中的所有注释完全显示。

我试图让iMacros的向下滚动事件注册没有成功,我已经基本成功地选择了文本View 1 more comments并使用以下脚本:

VERSION BUILD=8820413 RECORDER=FX
TAB T=1
URL GOTO=https://www.facebook.com/FACEBOOKID1?and=FACEBOOKID2
TAG POS={{!LOOP}} TYPE=SPAN ATTR=TXT:View<SP>1<SP>more<SP>comments

如何自动化向下滚动行为?如何改进当前扩展评论以更一般方式行事的尝试?

1 个答案:

答案 0 :(得分:0)

我使用下面的js脚本:

// set the number of scrolls you prefer
var scrollNumber = 1;
// scroll
for (i = 1; i <= scrollNumber; i++) {
    window.scrollTo(0, i*10000);
    iimPlayCode("WAIT SECONDS=2");
}
// expand comment boxes with 50 less comments
var doc = window.document;
var cmtBoxes = doc.getElementsByClassName("UFIBlingBox uiBlingBox feedbackBling");
for (i = 1; i <= cmtBoxes.length; i++) {
    var cmtLabel = cmtBoxes[i - 1].getAttribute("aria-label");
    var cmtNumber = cmtLabel.match(/.*\s(\d+)\scomments.*/)[1];
    if (cmtNumber < 50)
        iimPlayCode('TAG POS=' + i + ' TYPE=A ATTR=CLASS:"UFIBlingBox uiBlingBox feedbackBling"');
}
// count
var cmtPostNumber = 0;
for (i = 0; i < doc.links.length; i++) {
    if (doc.links[i].innerHTML.match(/View\s\d+\smore\scomment/) != null)
        cmtPostNumber++;
}
// view
for (i = 1; i <= cmtPostNumber; i++) {
    var M = "SET !TIMEOUT_STEP 1" + "\n";
    M += "TAG POS=1 TYPE=A ATTR=TXT:View<SP>*<SP>more<SP>comment*" + "\n";
    M += "WAIT SECONDS=1";
    var ret = iimPlayCode(M);
    if (ret != 1) break;
}
// go to the top
window.scrollTo(0, 0);