用于简单URL抓取的iOpus iMacros脚本

时间:2013-08-24 19:23:36

标签: firefox-addon web-scraping imacros

尝试使用iMacros for Firefox插件来提取链接网址。

以下输入 html代码位于要删除的网站上:链接网址和说明

<div class="subcl">
    <a href="http://www.url.com/someurl.html" target="_blank">description</a>
</div>

来自iMacros的所需输出:只是链接网址

http://www.url.com/someurl.html

由于网站上还有其他链接,因此代码中应包含class =“subcl”。也许有办法实现嵌套结构?我希望 - 如果可能的话 - 非Javascript代码,因为我自己不编码。

以下宏代码无效

VERSION BUILD=8300326 RECORDER=FX
TAB T=1

'Open the website
URL GOTO=http://www.url.com/pagetobescraped.html

'Extract the link url on the page
TAG POS=1 TYPE=DIV ATTR=CLASS:subcl* EXTRACT=HREF

宏返回#EANF#(到达的文件末尾没有匹配)。当我用EXTRACT=HREF替换EXTRACT=TXT时,它会返回"description",但我需要该网址。


修改

澄清symbiotech的答案:输入html代码前面是元素<h1>以及<p>。所有人都看起来像这样......

<h1>Title of the page</h1><p class="intro"></p>

<div class="subcl">
    <a href="http://www.url.com/someurl.html" target="_blank">description</a>
</div>

1 个答案:

答案 0 :(得分:2)

您需要从href元素中提取a,而不是从div本身提取。此外,既然您说页面上还有其他链接,则需要将每个“sublc”div作为参考点,因此POS=R1

TAG POS=1 TYPE=DIV ATTR=CLASS:subcl*
TAG POS=R1 TYPE=A ATTR=TXT:* EXTRACT=HREF

如果您需要提取多个链接,请使用“播放循环”按钮:

TAG POS={{!LOOP}} TYPE=DIV ATTR=CLASS:subcl*
TAG POS=R1 TYPE=A ATTR=TXT:* EXTRACT=HREF
针对您的具体案例

编辑: 您需要将自己定位在要提取的元素上方,但需要在同一树级别上,以便正确使用相对定位。那个空p元素似乎是一个足够好的锚点,或者你可以使用h1元素,如果它的文本不会改变太多:

TAG POS=1 TYPE=P ATTR=CLASS:intro
TAG POS=R{{!LOOP}} TYPE=A ATTR=TXT:* EXTRACT=TXT
TAG POS=1 TYPE=P ATTR=CLASS:intro
TAG POS=R{{!LOOP}} TYPE=A ATTR=TXT:* EXTRACT=HREF