1"use strict";(self.webpackChunkmaxun_docs=self.webpackChunkmaxun_docs||[]).push([[5518],{4107:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"robot/extract/robot-actions","title":"Recorder Mode: Point-and-Click Web Data Extraction","description":"Record your actions in a browser and Maxun turns them into a reusable extraction robot. Capture lists, text and screenshots with pagination, without code.","source":"@site/docs/robot/extract/actions.md","sourceDirName":"robot/extract","slug":"/robot/extract/robot-actions","permalink":"/robot/extract/robot-actions","draft":false,"unlisted":false,"tags":[],"version":"current","sidebarPosition":2,"frontMatter":{"id":"robot-actions","title":"Recorder Mode: Point-and-Click Web Data Extraction","description":"Record your actions in a browser and Maxun turns them into a reusable extraction robot. Capture lists, text and screenshots with pagination, without code.","sidebar_label":"Recorder Mode","sidebar_position":2},"sidebar":"defaultSidebar","previous":{"title":"Extract","permalink":"/category/extract"},"next":{"title":"AI Mode","permalink":"/robot/extract/llm-extraction"}}');var n=r(4848),i=r(8453);const s={id:"robot-actions",title:"Recorder Mode: Point-and-Click Web Data Extraction",description:"Record your actions in a browser and Maxun turns them into a reusable extraction robot. Capture lists, text and screenshots with pagination, without code.",sidebar_label:"Recorder Mode",sidebar_position:2},a="Recorder Mode",c={},d=[{value:"1. Capture List",id:"1-capture-list",level:2},{value:"2. Capture Text",id:"2-capture-text",level:2},{value:"3. Capture Screenshot",id:"3-capture-screenshot",level:2},{value:"What Recorder Mode Supports",id:"what-recorder-mode-supports",level:2},{value:"Using with SDK",id:"using-with-sdk",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"recorder-mode",children:"Recorder Mode"})}),"\n",(0,n.jsx)(t.p,{children:"Recorder Mode lets you record your actions into a workflow. Show the Recorder what you want to capture, and a robot will watch and learn."}),"\n",(0,n.jsxs)(t.p,{children:["Recorder Mode is the most precise way to build an Extract robot. Use it when you need exact fields, multi-step flows, logins, form filling or pagination. Robots built in Recorder Mode can also be ",(0,n.jsx)(t.a,{href:"/robot/extract/robot-duplicate",children:"duplicated"})," for similar pages and ",(0,n.jsx)(t.a,{href:"/robot/extract/robot-retrain",children:"retrained"})," when a site changes."]}),"\n",(0,n.jsx)(t.p,{children:"Depending on the use case, a robot should be configured to perform any of the following actions."}),"\n",(0,n.jsx)(t.h2,{id:"1-capture-list",children:"1. Capture List"}),"\n",(0,n.jsxs)(t.p,{children:["Capture List should be used to capture bulk data. Example: Extract products from ",(0,n.jsx)("a",{href:"https://producthunt.com",children:"producthunt.com"}),". Capture List involves four steps:"]}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"Select the product/item to capture."}),"\n",(0,n.jsx)(t.li,{children:"Select fields inside the selected product/item."}),"\n",(0,n.jsx)(t.li,{children:"Show the robot how to handle pagination."}),"\n",(0,n.jsx)(t.li,{children:"Set a limit, i.e. the number of items to capture."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Supported pagination types:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:'Click "Next"'})," to move to the next page"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:'Click "Load more"'})," to load more items on the same page"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Scroll down"})," for infinite scrolling pages"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"Scroll up"})," for pages that load items upwards"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.strong,{children:"No more items"}),", when everything is on one page"]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Check out this video to understand how to create a robot with capture list"}),"\n",(0,n.jsx)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/ZXGQEwQN7yI?si=PaNzVTbWn9z4Vh0E",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture;
1 web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,n.jsx)(t.h2,{id:"2-capture-text",children:"2. Capture Text"}),"\n",(0,n.jsx)(t.p,{children:"Capture Text should be used to extract specific text content. Useful to get individual data and when you do not want to bulk scrape."}),"\n",(0,n.jsx)(t.p,{children:"Check out this video to understand how to create a robot with capture text"}),"\n",(0,n.jsx)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/ZXGQEwQN7yI?si=k-etTEyhx_a9yFOr&start=275",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,n.jsx)(t.h2,{id:"3-capture-screenshot",children:"3. Capture Screenshot"}),"\n",(0,n.jsx)(t.p,{children:"Capture Screenshot should be used to extract screenshots of websites. Currently supported screenshots include:"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsx)(t.li,{children:"Full page screenshots"}),"\n",(0,n.jsx)(t.li,{children:"Visible section screenshots"}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:"Check out this video to understand how to create a robot with capture screenshot"}),"\n",(0,n.jsx)("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/ZXGQEwQN7yI?si=Lqlu94nDl1CWBwPc&start=195",title:"YouTube video player",frameborder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerpolicy:"strict-origin-when-cross-origin",allowfullscreen:!0}),"\n",(0,n.jsx)(t.h2,{id:"what-recorder-mode-supports",children:"What Recorder Mode Supports"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Clicking buttons and links"}),"\n",(0,n.jsx)(t.li,{children:"Filling out forms, dropdowns, radio buttons, checkboxes, dates and times"}),"\n",(0,n.jsxs)(t.li,{children:["Logging in to websites (see ",(0,n.jsx)(t.a,{href:"/extract-login",children:"Extract Behind Login"}),")"]}),"\n",(0,n.jsx)(t.li,{children:"Extracting data inside iFrames and Shadow DOM"}),"\n",(0,n.jsx)(t.li,{children:"Capturing image and file URLs"}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"using-with-sdk",children:"Using with SDK"}),"\n",(0,n.jsxs)(t.p,{children:["The same capture actions are available in code through the ",(0,n.jsx)("a",{href:"/category/sdk",children:"Maxun SDK"}),", using CSS selectors:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"const robot = await maxun.extract('Products', 'https://shop.example.com')\n .captureList({ selector: 'article.product_pod', maxItems: 20 })\n .build();\n"})}),"\n",(0,n.jsxs)(t.p,{children:["See ",(0,n.jsx)(t.a,{href:"/sdk/node-sdk/sdk-extract",children:"Node.js Extract"})," and ",(0,n.jsx)(t.a,{href:"/sdk/python-sdk/sdk-extract",children:"Python Extract"})," for the full builder API."]})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>s,x:()=>a});var o=r(6540);const n={},i=o.createContext(n);function s(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.