You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用iMacros提取列表项中的所有href值并保存到文本文件?

解决iMacros提取动态列表中所有href属性的问题

看起来你在提取动态列表的href时踩了几个常见的新手坑,我来帮你一步步修正代码并解释问题所在:

原代码的核心问题

  1. UL元素选择错误:目标HTML里的UL是用class="bullet-list..."定义的,但你代码里写的是ATTR=ID:bullet-list——这完全匹配不到任何元素,因为UL根本没有id属性。
  2. 循环逻辑不完整:你用了POS=R{{!LOOP}}但没设置循环触发条件,也没处理"找不到元素"的终止逻辑,导致脚本无法遍历所有列表项。
  3. A标签筛选错误:ATTR=ID:*要求A标签必须有id属性,但你目标里的A标签根本没有id,自然提取不到内容,只会返回#EANF#。

修正后的完整代码

VERSION BUILD=12.0.501.6698
TAB T=1
SET !ERRORIGNORE YES
SET !EXTRACT_TEST_POPUP NO
SET !EXTRACT NULL  ' 初始化清空提取变量,避免历史内容干扰
TAB CLOSEALLOTHERS
URL GOTO=https://www.home.co.uk/search/agents/?county=beds

' 循环遍历所有目标列表项
TAG POS={{!LOOP}} TYPE=LI ATTR=PARENT:UL.CLASS:bullet-list* EXTRACT=HREF

' 当提取不到内容时(说明所有列表项已处理完),退出脚本
IF {{!EXTRACT}} = "#EANF#" THEN EXIT SCRIPT

' 将提取到的href追加保存到文件(APPEND=YES避免覆盖原有内容)
SAVEAS TYPE=EXTRACT FOLDER=* FILE=c:\Development\towns.txt APPEND=YES
SET !EXTRACT NULL  ' 清空变量,准备下一次循环

代码说明

  • 精准定位列表项:PARENT:UL.CLASS:bullet-list*确保我们只提取带有bullet-list类的UL下的LI元素,通配符*用来兼容UL上的多个class属性。
  • 自动终止循环:当!EXTRACT返回#EANF#时,说明已经没有更多列表项了,脚本自动退出,无需手动设置固定循环次数。
  • 追加保存:APPEND=YES让每次提取的href都追加到文件末尾,而不是覆盖整个文件。
  • 变量初始化:每次循环前后清空!EXTRACT,避免残留的旧内容混入结果。

运行方式

在iMacros界面中,点击顶部的「Play (Loop)」按钮(或者按F8),设置一个足够大的循环次数(比如100,远大于你预期的列表项数量),脚本会自动遍历所有列表项,提取完成后自动退出。

内容的提问来源于stack exchange,提问作者MSB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:12:44