题
我真的无法理解 iMacros 语法。
我正在努力做什么。
1)转到我的博客的第一页
2)查找包含单词“post”的链接
3) 转到步骤 2 中找到的链接
4) 返回上一页
5)找到另一个相同的链接
6) 如果没有相同的链接,则查找带有“下一页”字样的链接(意思是下一页)
7) 转到该页面
8) 返回步骤2
听起来像是个计划。然后脚本将打开页面上的所有帖子,保存它们并转到另一个页面。
我怎样才能做到这一点?我尝试了具有 TAG 和 POS 属性的内容,但它们仅显示错误
解决方案
你搞错了。iMacros 无法做到这一点。iMacros 无法执行 IF 子句。为此,您必须使用 JavaScript 脚本。
1)转到我的博客的第一页2)查找包含单词“ post”的链接3)转到步骤2 2 4)返回上一页5)找到另一个相同的链接6)如果没有相同的链接,请找到与下一个“ word(这意味着下一页)7)转到该页8)返回步骤2
这就是你要问的。
var macro;
macro ="CODE:";
macro +="URL GOTO=www.myblog.com"+"\n";
var macro1;
macro1 ="CODE:";
macro1 +="TAG POS=1 TYPE=A ATTR=TXT:*post* EXTRACT=HREF"+"\n";
var macro2;
macro2 ="CODE:";
macro2 +="URL GOTO={{link}}"+"\n";
var macro3;
macro3 ="CODE:";
macro3 +="TAG POS=1 TYPE=A ATTR=TXT:*next* EXTRACT=HREF"+"\n";
//go to link
iimPlay(macro)
//extract the link on page with text post
iimPlay(macro1)
var link=iimGetLastExtract();
//if there is such a link go to it
if(link!="#EANF#")
{
iimSet("link",link)
iimPlay(macro2)
}
//go to previous page
iimPlay(macro)
//extract the link with text post
iimPlay(macro1)
link=iimGetLastExtrac();
//if there is not a link like that extract link with text next
if(link=="#EANF#")
{
//extract link with text next
iimPlay(macro3)
var next_link=iimGetLastExtract();
//if there is a link with text next navigate to it
if(next_link!="#EANF#")
{
//navigate to link with text
iimSet("link",next_link)
iimPlay(macro2)
}
}
因此,尝试解决这个问题,您将得到宏的答案。这必须放置在 .js 文件中并且没有其他扩展名!
不隶属于 StackOverflow