[{"data":1,"prerenderedAt":970},["ShallowReactive",2],{"navigation_docs":3,"-packages-profile-runner":72,"-packages-profile-runner-surround":965},[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,67],{"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",{"title":68,"path":69,"stem":70,"icon":71},"Client","\u002Fpackages\u002Fclient","3.packages\u002F4.client","i-lucide-plug",{"id":73,"title":48,"body":74,"description":958,"extension":959,"links":960,"meta":961,"navigation":962,"path":49,"seo":963,"stem":50,"__hash__":964},"docs\u002F3.packages\u002F1.profile-runner.md",{"type":75,"value":76,"toc":951},"minimark",[77,85,90,93,262,276,280,305,330,435,439,446,624,635,639,650,830,847,851,858,915,937,947],[78,79,80,84],"p",{},[81,82,83],"code",{},"@scrape-admin\u002Fprofile-runner"," executes scraping profiles that describe how to load a page, extract values, and transform\nthe results. Use it from an application with the package API, or run profiles directly with its CLI.",[86,87,89],"h2",{"id":88},"profile-structure","Profile structure",[78,91,92],{},"A profile can be provided as a JavaScript object or as YAML\u002FJSON text. It can define a URL, request headers, settings,\nactions, and elements to extract:",[94,95,100],"pre",{"className":96,"code":97,"language":98,"meta":99,"style":99},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","url: https:\u002F\u002Fexample.com\nheaders:\n  User-Agent: Custom UA\nsettings:\n  timeout: 5000\nelements:\n  - type: attribute\n    name: title\n    selector: h1.title\n    resultSelector: 0.text\n  - type: variable\n    name: categories\n    selector: ul.categories > li\n    resultSelector: '*.text'\n","yaml","",[81,101,102,119,128,139,147,159,167,181,192,203,214,226,236,246],{"__ignoreMap":99},[103,104,107,111,115],"span",{"class":105,"line":106},"line",1,[103,108,110],{"class":109},"swJcz","url",[103,112,114],{"class":113},"sMK4o",":",[103,116,118],{"class":117},"sfazB"," https:\u002F\u002Fexample.com\n",[103,120,122,125],{"class":105,"line":121},2,[103,123,124],{"class":109},"headers",[103,126,127],{"class":113},":\n",[103,129,131,134,136],{"class":105,"line":130},3,[103,132,133],{"class":109},"  User-Agent",[103,135,114],{"class":113},[103,137,138],{"class":117}," Custom UA\n",[103,140,142,145],{"class":105,"line":141},4,[103,143,144],{"class":109},"settings",[103,146,127],{"class":113},[103,148,150,153,155],{"class":105,"line":149},5,[103,151,152],{"class":109},"  timeout",[103,154,114],{"class":113},[103,156,158],{"class":157},"sbssI"," 5000\n",[103,160,162,165],{"class":105,"line":161},6,[103,163,164],{"class":109},"elements",[103,166,127],{"class":113},[103,168,170,173,176,178],{"class":105,"line":169},7,[103,171,172],{"class":113},"  -",[103,174,175],{"class":109}," type",[103,177,114],{"class":113},[103,179,180],{"class":117}," attribute\n",[103,182,184,187,189],{"class":105,"line":183},8,[103,185,186],{"class":109},"    name",[103,188,114],{"class":113},[103,190,191],{"class":117}," title\n",[103,193,195,198,200],{"class":105,"line":194},9,[103,196,197],{"class":109},"    selector",[103,199,114],{"class":113},[103,201,202],{"class":117}," h1.title\n",[103,204,206,209,211],{"class":105,"line":205},10,[103,207,208],{"class":109},"    resultSelector",[103,210,114],{"class":113},[103,212,213],{"class":117}," 0.text\n",[103,215,217,219,221,223],{"class":105,"line":216},11,[103,218,172],{"class":113},[103,220,175],{"class":109},[103,222,114],{"class":113},[103,224,225],{"class":117}," variable\n",[103,227,229,231,233],{"class":105,"line":228},12,[103,230,186],{"class":109},[103,232,114],{"class":113},[103,234,235],{"class":117}," categories\n",[103,237,239,241,243],{"class":105,"line":238},13,[103,240,197],{"class":109},[103,242,114],{"class":113},[103,244,245],{"class":117}," ul.categories > li\n",[103,247,249,251,253,256,259],{"class":105,"line":248},14,[103,250,208],{"class":109},[103,252,114],{"class":113},[103,254,255],{"class":113}," '",[103,257,258],{"class":117},"*.text",[103,260,261],{"class":113},"'\n",[78,263,264,265,268,269,272,273,275],{},"Element selectors can select DOM nodes or contain custom code. Attribute elements extract page data, while variable\nelements store intermediate values for other extractors. ",[81,266,267],{},"resultSelector"," selects properties from matched elements,\nsuch as ",[81,270,271],{},"0.text"," for the first match's text or ",[81,274,258],{}," for all matched texts.",[86,277,279],{"id":278},"actions-and-transformations","Actions and transformations",[78,281,282,283,286,287,286,290,293,294,286,297,300,301,304],{},"Actions run before or after extraction. Built-in browser actions include ",[81,284,285],{},"waitForElement",", ",[81,288,289],{},"clickElement",[81,291,292],{},"fillField",",\n",[81,295,296],{},"pressKey",[81,298,299],{},"waitForTimeout",", and ",[81,302,303],{},"loop",". Code actions can modify the extraction context.",[78,306,307,308,286,311,286,314,293,317,286,320,286,323,300,326,329],{},"Transformers process an extracted value in order. Built-ins include ",[81,309,310],{},"convert.json",[81,312,313],{},"number.toFloat",[81,315,316],{},"number.toInt",[81,318,319],{},"number",[81,321,322],{},"text.replace",[81,324,325],{},"text.toString",[81,327,328],{},"custom",".",[94,331,333],{"className":96,"code":332,"language":98,"meta":99,"style":99},"elements:\n  - type: attribute\n    name: price\n    selector: .price\n    resultSelector: 0.text\n    transform:\n      - callback: text.replace\n        params: ['\u002F[^0-9.]\u002Fg', '']\n      - callback: number.toFloat\n",[81,334,335,341,351,360,369,377,384,397,424],{"__ignoreMap":99},[103,336,337,339],{"class":105,"line":106},[103,338,164],{"class":109},[103,340,127],{"class":113},[103,342,343,345,347,349],{"class":105,"line":121},[103,344,172],{"class":113},[103,346,175],{"class":109},[103,348,114],{"class":113},[103,350,180],{"class":117},[103,352,353,355,357],{"class":105,"line":130},[103,354,186],{"class":109},[103,356,114],{"class":113},[103,358,359],{"class":117}," price\n",[103,361,362,364,366],{"class":105,"line":141},[103,363,197],{"class":109},[103,365,114],{"class":113},[103,367,368],{"class":117}," .price\n",[103,370,371,373,375],{"class":105,"line":149},[103,372,208],{"class":109},[103,374,114],{"class":113},[103,376,213],{"class":117},[103,378,379,382],{"class":105,"line":161},[103,380,381],{"class":109},"    transform",[103,383,127],{"class":113},[103,385,386,389,392,394],{"class":105,"line":169},[103,387,388],{"class":113},"      -",[103,390,391],{"class":109}," callback",[103,393,114],{"class":113},[103,395,396],{"class":117}," text.replace\n",[103,398,399,402,404,407,410,413,415,418,421],{"class":105,"line":183},[103,400,401],{"class":109},"        params",[103,403,114],{"class":113},[103,405,406],{"class":113}," [",[103,408,409],{"class":113},"'",[103,411,412],{"class":117},"\u002F[^0-9.]\u002Fg",[103,414,409],{"class":113},[103,416,417],{"class":113},",",[103,419,420],{"class":113}," ''",[103,422,423],{"class":113},"]\n",[103,425,426,428,430,432],{"class":105,"line":194},[103,427,388],{"class":113},[103,429,391],{"class":109},[103,431,114],{"class":113},[103,433,434],{"class":117}," number.toFloat\n",[86,436,438],{"id":437},"browser-mode","Browser mode",[78,440,441,442,445],{},"Use ",[81,443,444],{},"runProfile"," for browser-based scraping. It can create and manage a browser page or use an existing Puppeteer browser\nor page:",[94,447,451],{"className":448,"code":449,"language":450,"meta":99,"style":99},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { runProfile } from '@scrape-admin\u002Fprofile-runner'\n\nconst result = await runProfile({\n  profile: {\n    elements: [\n      { type: 'attribute', name: 'title', selector: 'h1', resultSelector: '0.text' },\n    ],\n  },\n  urlOverride: 'https:\u002F\u002Fexample.com',\n})\n","ts",[81,452,453,478,484,508,518,528,588,595,600,616],{"__ignoreMap":99},[103,454,455,459,462,466,469,472,474,476],{"class":105,"line":106},[103,456,458],{"class":457},"s7zQu","import",[103,460,461],{"class":113}," {",[103,463,465],{"class":464},"sTEyZ"," runProfile",[103,467,468],{"class":113}," }",[103,470,471],{"class":457}," from",[103,473,255],{"class":113},[103,475,83],{"class":117},[103,477,261],{"class":113},[103,479,480],{"class":105,"line":121},[103,481,483],{"emptyLinePlaceholder":482},true,"\n",[103,485,486,490,493,496,499,502,505],{"class":105,"line":130},[103,487,489],{"class":488},"spNyl","const",[103,491,492],{"class":464}," result ",[103,494,495],{"class":113},"=",[103,497,498],{"class":457}," await",[103,500,465],{"class":501},"s2Zo4",[103,503,504],{"class":464},"(",[103,506,507],{"class":113},"{\n",[103,509,510,513,515],{"class":105,"line":141},[103,511,512],{"class":109},"  profile",[103,514,114],{"class":113},[103,516,517],{"class":113}," {\n",[103,519,520,523,525],{"class":105,"line":149},[103,521,522],{"class":109},"    elements",[103,524,114],{"class":113},[103,526,527],{"class":464}," [\n",[103,529,530,533,535,537,539,542,544,546,549,551,553,556,558,560,563,565,567,570,572,574,577,579,581,583,585],{"class":105,"line":161},[103,531,532],{"class":113},"      {",[103,534,175],{"class":109},[103,536,114],{"class":113},[103,538,255],{"class":113},[103,540,541],{"class":117},"attribute",[103,543,409],{"class":113},[103,545,417],{"class":113},[103,547,548],{"class":109}," name",[103,550,114],{"class":113},[103,552,255],{"class":113},[103,554,555],{"class":117},"title",[103,557,409],{"class":113},[103,559,417],{"class":113},[103,561,562],{"class":109}," selector",[103,564,114],{"class":113},[103,566,255],{"class":113},[103,568,569],{"class":117},"h1",[103,571,409],{"class":113},[103,573,417],{"class":113},[103,575,576],{"class":109}," resultSelector",[103,578,114],{"class":113},[103,580,255],{"class":113},[103,582,271],{"class":117},[103,584,409],{"class":113},[103,586,587],{"class":113}," },\n",[103,589,590,593],{"class":105,"line":169},[103,591,592],{"class":464},"    ]",[103,594,293],{"class":113},[103,596,597],{"class":105,"line":183},[103,598,599],{"class":113},"  },\n",[103,601,602,605,607,609,612,614],{"class":105,"line":194},[103,603,604],{"class":109},"  urlOverride",[103,606,114],{"class":113},[103,608,255],{"class":113},[103,610,611],{"class":117},"https:\u002F\u002Fexample.com",[103,613,409],{"class":113},[103,615,293],{"class":113},[103,617,618,621],{"class":105,"line":205},[103,619,620],{"class":113},"}",[103,622,623],{"class":464},")\n",[78,625,626,627,630,631,634],{},"Pass ",[81,628,629],{},"browser"," or ",[81,632,633],{},"page"," to reuse an existing Puppeteer instance. Profiles can also configure request headers, block\nrequests, set a proxy server, and define a timeout.",[86,636,638],{"id":637},"browser-free-mode","Browser-free mode",[78,640,641,642,645,646,649],{},"For static or server-rendered pages, ",[81,643,644],{},"runProfileWithCheerio"," uses ",[81,647,648],{},"fetch"," and Cheerio rather than launching a browser:",[94,651,653],{"className":448,"code":652,"language":450,"meta":99,"style":99},"import { runProfileWithCheerio } from '@scrape-admin\u002Fprofile-runner\u002Fcheerio'\n\nconst result = await runProfileWithCheerio({\n  profile: {\n    url: 'https:\u002F\u002Fexample.com',\n    elements: [\n      { type: 'attribute', name: 'title', selector: 'h1', resultSelector: '0.text' },\n    ],\n  },\n  fetchOptions: { headers: { 'User-Agent': 'Custom UA' } },\n})\n",[81,654,655,675,679,695,703,718,726,778,784,788,824],{"__ignoreMap":99},[103,656,657,659,661,664,666,668,670,673],{"class":105,"line":106},[103,658,458],{"class":457},[103,660,461],{"class":113},[103,662,663],{"class":464}," runProfileWithCheerio",[103,665,468],{"class":113},[103,667,471],{"class":457},[103,669,255],{"class":113},[103,671,672],{"class":117},"@scrape-admin\u002Fprofile-runner\u002Fcheerio",[103,674,261],{"class":113},[103,676,677],{"class":105,"line":121},[103,678,483],{"emptyLinePlaceholder":482},[103,680,681,683,685,687,689,691,693],{"class":105,"line":130},[103,682,489],{"class":488},[103,684,492],{"class":464},[103,686,495],{"class":113},[103,688,498],{"class":457},[103,690,663],{"class":501},[103,692,504],{"class":464},[103,694,507],{"class":113},[103,696,697,699,701],{"class":105,"line":141},[103,698,512],{"class":109},[103,700,114],{"class":113},[103,702,517],{"class":113},[103,704,705,708,710,712,714,716],{"class":105,"line":149},[103,706,707],{"class":109},"    url",[103,709,114],{"class":113},[103,711,255],{"class":113},[103,713,611],{"class":117},[103,715,409],{"class":113},[103,717,293],{"class":113},[103,719,720,722,724],{"class":105,"line":161},[103,721,522],{"class":109},[103,723,114],{"class":113},[103,725,527],{"class":464},[103,727,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776],{"class":105,"line":169},[103,729,532],{"class":113},[103,731,175],{"class":109},[103,733,114],{"class":113},[103,735,255],{"class":113},[103,737,541],{"class":117},[103,739,409],{"class":113},[103,741,417],{"class":113},[103,743,548],{"class":109},[103,745,114],{"class":113},[103,747,255],{"class":113},[103,749,555],{"class":117},[103,751,409],{"class":113},[103,753,417],{"class":113},[103,755,562],{"class":109},[103,757,114],{"class":113},[103,759,255],{"class":113},[103,761,569],{"class":117},[103,763,409],{"class":113},[103,765,417],{"class":113},[103,767,576],{"class":109},[103,769,114],{"class":113},[103,771,255],{"class":113},[103,773,271],{"class":117},[103,775,409],{"class":113},[103,777,587],{"class":113},[103,779,780,782],{"class":105,"line":183},[103,781,592],{"class":464},[103,783,293],{"class":113},[103,785,786],{"class":105,"line":194},[103,787,599],{"class":113},[103,789,790,793,795,797,800,802,804,806,809,811,813,815,818,820,822],{"class":105,"line":205},[103,791,792],{"class":109},"  fetchOptions",[103,794,114],{"class":113},[103,796,461],{"class":113},[103,798,799],{"class":109}," headers",[103,801,114],{"class":113},[103,803,461],{"class":113},[103,805,255],{"class":113},[103,807,808],{"class":109},"User-Agent",[103,810,409],{"class":113},[103,812,114],{"class":113},[103,814,255],{"class":113},[103,816,817],{"class":117},"Custom UA",[103,819,409],{"class":113},[103,821,468],{"class":113},[103,823,587],{"class":113},[103,825,826,828],{"class":105,"line":216},[103,827,620],{"class":113},[103,829,623],{"class":464},[78,831,832,833,835,836,838,839,842,843,846],{},"This mode supports extraction, variables, transformations, custom code, and ",[81,834,299],{}," and ",[81,837,81],{}," actions. It\ndoes not support browser interactions such as clicking or filling fields. Request-blocking and the profile's\n",[81,840,841],{},"proxyServer"," setting are ignored; configure a proxy-aware fetch implementation through ",[81,844,845],{},"fetchOptions"," instead.",[86,848,850],{"id":849},"cli","CLI",[78,852,853,854,857],{},"The ",[81,855,856],{},"profile-runner"," command reads a profile file or accepts YAML\u002FJSON from standard input:",[94,859,863],{"className":860,"code":861,"language":862,"meta":99,"style":99},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm --filter @scrape-admin\u002Fprofile-runner run:profile --profile .\u002Fprofile.yaml --url https:\u002F\u002Fexample.com\ncat profile.yaml | pnpm --filter @scrape-admin\u002Fprofile-runner run:profile --url https:\u002F\u002Fexample.com\n","bash",[81,864,865,891],{"__ignoreMap":99},[103,866,867,871,874,877,880,883,886,889],{"class":105,"line":106},[103,868,870],{"class":869},"sBMFI","pnpm",[103,872,873],{"class":117}," --filter",[103,875,876],{"class":117}," @scrape-admin\u002Fprofile-runner",[103,878,879],{"class":117}," run:profile",[103,881,882],{"class":117}," --profile",[103,884,885],{"class":117}," .\u002Fprofile.yaml",[103,887,888],{"class":117}," --url",[103,890,118],{"class":117},[103,892,893,896,899,902,905,907,909,911,913],{"class":105,"line":121},[103,894,895],{"class":869},"cat",[103,897,898],{"class":117}," profile.yaml",[103,900,901],{"class":113}," |",[103,903,904],{"class":869}," pnpm",[103,906,873],{"class":117},[103,908,876],{"class":117},[103,910,879],{"class":117},[103,912,888],{"class":117},[103,914,118],{"class":117},[78,916,441,917,920,921,924,925,928,929,932,933,936],{},[81,918,919],{},"--ws"," to connect to a remote browser WebSocket endpoint, ",[81,922,923],{},"--proxy"," to specify a proxy, ",[81,926,927],{},"--format"," to select JSON or\nYAML output, and ",[81,930,931],{},"--pretty"," to format JSON output. ",[81,934,935],{},"--url"," overrides the URL in the profile.",[78,938,939,940,329],{},"For the full profile reference and additional examples, see the\n",[941,942,946],"a",{"href":943,"rel":944},"https:\u002F\u002Fgithub.com\u002Fhareland\u002Fscrape-admin-standalone\u002Fblob\u002Fmain\u002Fpackages\u002Fprofile-runner\u002FREADME.md",[945],"nofollow","profile-runner README",[948,949,950],"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 pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":99,"searchDepth":121,"depth":121,"links":952},[953,954,955,956,957],{"id":88,"depth":121,"text":89},{"id":278,"depth":121,"text":279},{"id":437,"depth":121,"text":438},{"id":637,"depth":121,"text":638},{"id":849,"depth":121,"text":850},"Extract website data using reusable YAML or JSON profiles.","md",null,{},{"icon":51},{"title":48,"description":958},"qaCJOnVXu-ABrxz1T6pJQDVrUKtS-J1WcZJYA2hVB6g",[966,968],{"title":37,"path":38,"stem":39,"description":967,"icon":40,"children":-1},"Profile Recorder is a Chrome extension for recording scraping profiles. It allows you to interact with a web page and capture the elements, actions, and transformations needed to extract data.",{"title":53,"path":54,"stem":55,"description":969,"icon":56,"children":-1},"Shared schema for profiles, collections, entries, and webhooks.",1790949708285]