【问题标题】:iOpus iMacros script for simple URL scrape用于简单 URL 抓取的 iOpus iMacros 脚本
【发布时间】:2013-08-24 19:23:36
【问题描述】:

尝试使用 iMacros for Firefox 插件提取链接 url。

以下输入 html代码在要抓取的网站上:链接url和描述

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

来自 iMacros 的所需 输出:只需链接 url

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" 但我需要 URL。


编辑

澄清 symbiotech 的答案:输入的 html 代码之前是元素 &lt;h1&gt; 以及 &lt;p&gt;。总而言之,它看起来像这样......

<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>

【问题讨论】:

    标签: firefox-addon web-scraping imacros


    【解决方案1】:

    您需要从a 元素中提取href,而不是从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
    

    EDIT 针对您的具体情况: 您需要将自己定位在要提取的元素之上,但在同一树级别上,以便正确使用相对定位。那个空的 p elem 似乎是一个足够好的锚,或者你可以使用 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
    

    【讨论】:

    • 如果相对链接包含在其中,iMacros 似乎不接受 DIV 作为参考点。
    • 是的,你是对的,相对定位不再适用于包含的标签。请看我的编辑。
    • 谢谢你,这行得通!正是我想要的。我已经调整了我的问题以澄清你的答案。关于 iOpus,我认为不允许相对定位是违反直觉的……但是哦,好吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2011-08-19
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    相关资源
    最近更新 更多