1

尝试使用 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=HREFEXTRACT=TXT它替换时,"description"我需要 URL。


编辑

澄清 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>
4

1 回答 1

2

您需要从元素中提取hrefa而不是从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
于 2013-08-25T23:13:59.327 回答