[{"data":1,"prerenderedAt":387},["ShallowReactive",2],{"navigation_docs":3,"-applications-web-profile":67,"-applications-web-profile-surround":386},[4,20,41],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Overview",false,"\u002Fgetting-started","1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Adding Documentation","\u002Fgetting-started\u002Fadding-documentation","1.getting-started\u002F3.adding-documentation","i-lucide-file-plus",{"title":21,"icon":22,"path":23,"stem":24,"children":25,"page":6},"Applications","i-lucide-layout-grid","\u002Fapplications","2.applications",[26,31,36],{"title":27,"path":28,"stem":29,"icon":30},"Web","\u002Fapplications\u002Fweb","2.applications\u002F1.web","i-lucide-globe-code",{"title":32,"path":33,"stem":34,"icon":35},"Coordinator","\u002Fapplications\u002Fcoordinator","2.applications\u002F2.coordinator","i-lucide-clock",{"title":37,"path":38,"stem":39,"icon":40},"Profile Chrome Extension","\u002Fapplications\u002Fprofile-recorder","2.applications\u002F3.profile-recorder","i-lucide-mouse-pointer-click",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":6},"Packages","i-lucide-package","\u002Fpackages","3.packages",[47,52,57,62],{"title":48,"path":49,"stem":50,"icon":51},"Profile Runner","\u002Fpackages\u002Fprofile-runner","3.packages\u002F1.profile-runner","i-lucide-scan-search",{"title":53,"path":54,"stem":55,"icon":56},"Schema","\u002Fpackages\u002Fschema","3.packages\u002F2.schema","i-lucide-file-json",{"title":58,"path":59,"stem":60,"icon":61},"UI","\u002Fpackages\u002Fui","3.packages\u002F2.ui","i-lucide-layout-dashboard",{"title":63,"path":64,"stem":65,"icon":66},"Coordinator SDK","\u002Fpackages\u002Fcoordinator-sdk","3.packages\u002F3.coordinator-sdk","i-lucide-plug-zap",{"id":68,"title":69,"body":70,"description":378,"extension":379,"links":380,"meta":381,"navigation":6,"path":382,"seo":383,"stem":384,"__hash__":385},"docs\u002F2.applications\u002F1.web\u002F3.profile.md","Profiles",{"type":71,"value":72,"toc":372},"minimark",[73,88,95,100,184,200,204,207,233,326,333,337,359,363,368],[74,75,76,77,82,83,87],"p",{},"A profile describes how to load a page and extract data from it: the URLs it applies to, request settings, actions to\nrun before or after extraction, and the elements to extract. Profiles can be attached to a\n",[78,79,81],"a",{"href":80},".\u002Fcollection","collection"," as a default, or to an individual ",[78,84,86],{"href":85},".\u002Fcollection-entry","collection entry"," to override it.",[74,89,90],{},[91,92],"img",{"alt":93,"src":94},"A profile's editor and run preview","\u002Fscreenshots\u002Fweb-profile-detail.png",[96,97,99],"h2",{"id":98},"fields","Fields",[101,102,103,111,117,136,146,163],"ul",{},[104,105,106,110],"li",{},[107,108,109],"strong",{},"Name"," — required, shown in the profiles list.",[104,112,113,116],{},[107,114,115],{},"URLs"," — optional list of URLs this profile is associated with.",[104,118,119,122,123,127,128,131,132,135],{},[107,120,121],{},"Settings"," — optional ",[124,125,126],"code",{},"proxyServer"," and ",[124,129,130],{},"timeout",", and a ",[124,133,134],{},"deleteVars"," toggle for clearing intermediate variables\nafter a run.",[104,137,138,141,142,145],{},[107,139,140],{},"Block"," — optional URL\u002Fmedia patterns to block while loading the page (",[124,143,144],{},"ProfileBlockInput",").",[104,147,148,151,152,155,156,159,160,145],{},[107,149,150],{},"Actions"," — ",[124,153,154],{},"before","\u002F",[124,157,158],{},"after"," arrays of actions to run around extraction (",[124,161,162],{},"ProfileActionsInput",[104,164,165,168,169,172,173,176,177,180,181,145],{},[107,166,167],{},"Elements"," — the values to extract from the page: a ",[124,170,171],{},"selector",", a ",[124,174,175],{},"resultSelector",", and optional ",[124,178,179],{},"transform","\nsteps (",[124,182,183],{},"ProfileElementsInput",[74,185,186,187,155,190,155,193,196,197,199],{},"These fields mirror the ",[124,188,189],{},"zProfile",[124,191,192],{},"zProfileElement",[124,194,195],{},"zAction"," schemas documented in ",[78,198,53],{"href":54}," — see\nthat page for the full shape and available transformers.",[96,201,203],{"id":202},"editing-a-profile","Editing a profile",[74,205,206],{},"A profile's page offers two ways to edit it:",[101,208,209,215],{},[104,210,211,214],{},[107,212,213],{},"Editor"," — an accordion of form inputs, one section per field above.",[104,216,217,220,221,224,225,228,229,232],{},[107,218,219],{},"YAML Editor"," — the same profile as YAML, backed by a Monaco editor. Toggle ",[107,222,223],{},"Auto format"," to parse and apply\nchanges as you type, or use ",[107,226,227],{},"Format & Apply"," to parse once and pretty-print the result. ",[107,230,231],{},"Copy YAML"," copies the\ncurrent text to the clipboard.",[234,235,240],"pre",{"className":236,"code":237,"language":238,"meta":239,"style":239},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","name: Example profile\nurl: https:\u002F\u002Fexample.com\nelements:\n  - type: attribute\n    name: title\n    selector: h1.title\n    resultSelector: 0.text\n","yaml","",[124,241,242,259,270,279,293,304,315],{"__ignoreMap":239},[243,244,247,251,255],"span",{"class":245,"line":246},"line",1,[243,248,250],{"class":249},"swJcz","name",[243,252,254],{"class":253},"sMK4o",":",[243,256,258],{"class":257},"sfazB"," Example profile\n",[243,260,262,265,267],{"class":245,"line":261},2,[243,263,264],{"class":249},"url",[243,266,254],{"class":253},[243,268,269],{"class":257}," https:\u002F\u002Fexample.com\n",[243,271,273,276],{"class":245,"line":272},3,[243,274,275],{"class":249},"elements",[243,277,278],{"class":253},":\n",[243,280,282,285,288,290],{"class":245,"line":281},4,[243,283,284],{"class":253},"  -",[243,286,287],{"class":249}," type",[243,289,254],{"class":253},[243,291,292],{"class":257}," attribute\n",[243,294,296,299,301],{"class":245,"line":295},5,[243,297,298],{"class":249},"    name",[243,300,254],{"class":253},[243,302,303],{"class":257}," title\n",[243,305,307,310,312],{"class":245,"line":306},6,[243,308,309],{"class":249},"    selector",[243,311,254],{"class":253},[243,313,314],{"class":257}," h1.title\n",[243,316,318,321,323],{"class":245,"line":317},7,[243,319,320],{"class":249},"    resultSelector",[243,322,254],{"class":253},[243,324,325],{"class":257}," 0.text\n",[74,327,328,329,332],{},"Use ",[107,330,331],{},"Run Preview"," to execute the profile against a URL and inspect the extracted result before saving.",[96,334,336],{"id":335},"import-and-export","Import and export",[74,338,339,340,343,344,347,348,351,352,355,356,358],{},"From the profiles list, ",[107,341,342],{},"Export"," downloads all of a team's profiles as a single ",[124,345,346],{},"profiles.yaml"," file, and\n",[107,349,350],{},"Import"," reads a YAML file in the same shape (a top-level ",[124,353,354],{},"profiles"," list) and creates or updates profiles by\nmatching on ",[124,357,250],{},".",[96,360,362],{"id":361},"recording-a-profile","Recording a profile",[74,364,365,366,358],{},"Rather than writing a profile by hand, you can record one by interacting with a page in the browser using the\n",[78,367,37],{"href":38},[369,370,371],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":239,"searchDepth":261,"depth":261,"links":373},[374,375,376,377],{"id":98,"depth":261,"text":99},{"id":202,"depth":261,"text":203},{"id":335,"depth":261,"text":336},{"id":361,"depth":261,"text":362},"Profiles are a way to define how content is extracted from a web page, including the elements to extract, actions to perform, and transformations to apply.","md",null,{},"\u002Fapplications\u002Fweb\u002Fprofile",{"title":69,"description":378},"2.applications\u002F1.web\u002F3.profile","RrR6p5uNOVhc8-I3AIVcjEOTpEHaSjPRWM0loWVzjSE",[380,380],1790864112979]