1from apify_client import ApifyClient
2
3
4
5client = ApifyClient("<YOUR_API_TOKEN>")
6
7
8run_input = {
9 "browser.start": "https://www.wikipedia.org",
10 "browser.engine": "chromium",
11 "browser.library": "playwright",
12 "script": """// 🚀 LIVE DEMO SCRIPT READY TO LAUNCH WITH DEFAULT SETTINGS 🚀
13// 🎬 DELETE THIS SCRIPT TO START CODER AND RECORD YOUR OWN! 🎬
14
15/** @param {context} context */
16context => async ({page, tools: {sleep, expect, waitForPage}} = context) => {
17 // agent.will('execute recorded automation')
18 page.setDefaultNavigationTimeout(90 * 1000);
19
20 await page.goto('https://www.wikipedia.org/', {waitUntil: 'domcontentloaded'});
21 await page.getByRole('button', { name: 'Read Wikipedia in your' }).click();
22 await page.getByRole('searchbox', { name: 'Search Wikipedia' }).click();
23 await page.getByRole('searchbox', { name: 'Search Wikipedia' }).fill('hello world');
24 await page.getByRole('searchbox', { name: 'Search Wikipedia' }).press('ArrowDown');
25 await page.getByRole('searchbox', { name: 'Search Wikipedia' }).press('Enter');
26 await page.getByRole('link', { name: 'View history' }).click();
27 await page.getByRole('button', { name: 'Compare selected revisions' }).first().click();
28 await page.getByRole('switch', { name: 'Inline' }).click();
29 await page.getByRole('button', { name: 'Visual' }).click();
30 await page.getByRole('button', { name: 'Tools' }).check();
31 await page.getByRole('link', { name: 'Edit', exact: true }).click();
32
33 await page.goto('https://apify.com/store/', {waitUntil: 'domcontentloaded'});
34 await page.getByRole('combobox').click();
35 await page.locator('[data-test=\"actor-store-search\"]').click();
36 await page.locator('[data-test=\"actor-store-search\"]').fill('chrome extensions');
37 await page.locator('[data-test=\"actor-store-search\"]').press('ArrowDown');
38 await page.locator('[data-test=\"actor-store-search\"]').press('ArrowDown');
39 await page.locator('[data-test=\"actor-store-search\"]').press('ArrowUp');
40 await page.locator('[data-test=\"actor-store-search\"]').press('ArrowUp');
41 await page.locator('[data-test=\"actor-store-search\"]').press('Enter');
42 await page.locator('[data-test=\"store-filter-category\"]').click();
43 await page.locator('[data-test=\"store-filter-category\"]').press('Tab');
44 await page.locator('[data-test=\"store-filter-pricing\"]').press('Tab');
45 await page.locator('[data-test=\"store-filter-managedBy\"]').press('ArrowDown');
46 await page.getByRole('option', { name: 'All developers' }).press('ArrowDown');
47 await page.getByRole('option', { name: 'Maintained by Apify' }).press('ArrowDown');
48 await page.getByRole('option', { name: 'Maintained by Community' }).press('Enter');
49 await page.getByRole('link', { name: 'Chrome Extensions avatar' }).click();
50 await page.getByRole('tab', { name: 'Input' }).click();
51 await page.getByRole('tab', { name: 'API' }).click();
52 await page.getByRole('tab', { name: 'Reviews' }).click();
53 await page.getByRole('link', { name: 'Vasek Codey Vlcek Vasek Codey' }).click();
54 await page.locator('div').filter({ hasText: 'Vasek Codey' }).nth(2).click();
55 // await page.goto('https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Thats_all_folks.svg/960px-Thats_all_folks.svg.png');
56
57 return {
58 example: true,
59 success: true,
60 };
61};
62
63// ⚙️ SETUP FOR CODE HINTS: 💡
64/** @typedef {{all: () => Promise<Locator[]>, allInnerTexts: () => Promise<string[]>, allTextContents: () => Promise<string[]>, and: (locator: Locator) => Locator, ariaSnapshot: (options?: {timeout?: number}) => Promise<string>, blur: (options?: {timeout?: number}) => Promise<void>, boundingBox: (options?: {timeout?: number}) => Promise<any>, check: (options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number, trial?: boolean}) => Promise<void>, clear: (options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, click: (options?: {button?: 'left'|'right'|'middle', clickCount?: number, delay?: number, force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, contentFrame: () => Object, count: () => Promise<number>, dblclick: (options?: {button?: 'left'|'right'|'middle', delay?: number, force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, describe: (description: string) => Locator, description: () => string, dispatchEvent: (type: string, eventInit?: any, options?: {timeout?: number}) => Promise<void>, dragTo: (target: Locator, options?: {force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, sourcePosition?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, evaluate: (pageFunction: string|function, arg?: any, options?: {timeout?: number}) => Promise<any>, evaluateAll: (pageFunction: string|function, arg?: any) => Promise<any>, evaluateHandle: (pageFunction: string|function, arg?: any, options?: {timeout?: number}) => Promise<any>, fill: (value: string, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, filter: (options?: {has?: Locator, hasNot?: Locator, hasNotText?: string|RegExp, hasText?: string|RegExp}) => Locator, first: () => Locator, focus: (options?: {timeout?: number}) => Promise<void>, frameLocator: (selector: string) => Object, getAttribute: (name: string, options?: {timeout?: number}) => Promise<string>, getByAltText: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByLabel: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByPlaceholder: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByRole: (role: 'alert'|'alertdialog'|'application'|'article'|'banner'|'blockquote'|'button'|'caption'|'cell'|'checkbox'|'code'|'complementary'|'contentinfo'|'definition'|'deletion'|'dialog'|'directory'|'document'|'emphasis'|'feed'|'figure'|'form'|'generic'|'grid'|'gridcell'|'group'|'heading'|'img'|'insertion'|'link'|'list'|'listbox'|'listitem'|'log'|'main'|'marquee'|'math'|'meter'|'menu'|'menubar'|'menuitem'|'menuitemcheckbox'|'menuitemradio'|'navigation'|'none'|'note'|'option'|'paragraph'|'presentation'|'progressbar'|'radio'|'radiogroup'|'region'|'row'|'rowgroup'|'rowheader'|'scrollbar'|'search'|'searchbox'|'separator'|'slider'|'spinbutton'|'status'|'strong'|'subscript'|'superscript'|'switch'|'tab'|'table'|'tablist'|'tabpanel'|'term'|'textbox'|'timer'|'toolbar'|'tooltip'|'tree'|'treegrid'|'treeitem', options?: {checked?: boolean, disabled?: boolean, exact?: boolean, expanded?: boolean, includeHidden?: boolean, level?: number, name?: string|RegExp, pressed?: boolean, selected?: boolean}) => Locator, getByTestId: (testId: string|RegExp) => Locator, getByText: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByTitle: (text: string|RegExp, options?: {exact?: boolean}) => Locator, highlight: () => Promise<void>, hover: (options?: {force?: boolean, modifiers?: string[], position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, innerHTML: (options?: {timeout?: number}) => Promise<string>, innerText: (options?: {timeout?: number}) => Promise<string>, inputValue: (options?: {timeout?: number}) => Promise<string>, isChecked: (options?: {timeout?: number}) => Promise<boolean>, isDisabled: (options?: {timeout?: number}) => Promise<boolean>, isEditable: (options?: {timeout?: number}) => Promise<boolean>, isEnabled: (options?: {timeout?: number}) => Promise<boolean>, isHidden: (options?: {timeout?: number}) => Promise<boolean>, isVisible: (options?: {timeout?: number}) => Promise<boolean>, last: () => Locator, locator: (selectorOrLocator: string|Locator, options?: {has?: Locator, hasNot?: Locator, hasNotText?: string|RegExp, hasText?: string|RegExp}) => Locator, nth: (index: number) => Locator, or: (locator: Locator) => Locator, page: () => Object, press: (key: string, options?: {delay?: number, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, pressSequentially: (text: string, options?: {delay?: number, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, screenshot: (options?: {animations?: 'disabled'|'allow', caret?: 'hide'|'initial', clip?: {x: number, y: number, width: number, height: number}, fullPage?: boolean, mask?: Locator[], maskColor?: string, omitBackground?: boolean, path?: string, quality?: number, scale?: 'css'|'device', style?: string, timeout?: number, type?: 'png'|'jpeg'}) => Promise<Buffer>, scrollIntoViewIfNeeded: (options?: {timeout?: number}) => Promise<void>, selectOption: (values: string|string[]|Object|any, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number}) => Promise<string[]>, selectText: (options?: {force?: boolean, timeout?: number}) => Promise<void>, setChecked: (checked: boolean, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number, trial?: boolean}) => Promise<void>, setInputFiles: (files: string|string[]|Object|any[], options?: {noWaitAfter?: boolean, timeout?: number}) => Promise<void>, tap: (options?: {force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, textContent: (options?: {timeout?: number}) => Promise<string>, uncheck: (options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number, trial?: boolean}) => Promise<void>, waitFor: (options?: {state?: 'attached'|'detached'|'visible'|'hidden', timeout?: number}) => Promise<void>}} Locator */
65/** @typedef {{input: {target: string, tasks: string[], browser: string=, ipAddress: string=, retry: number=, abort: boolean=, block: boolean=, debug: boolean=, human: boolean=, notify: boolean=, silent: boolean=, server: boolean=, session: boolean=, stealth: boolean=, proxyConfig: Object=, options: Object=}, output: Object, task: {name: string, init: (context: Object) => boolean=, done: (context: Object) => boolean=, output: Object=, model: Object}, step: {name: string, attachOutput: (output: Object) => Object, output: Object, done: boolean=, will: (text: string) => void}, page: {goto: (url: string, options?: {referer?: string, timeout?: number, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, goBack: (options?: {timeout?: number, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, goForward: (options?: {timeout?: number, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, reload: (options?: {timeout?: number, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, waitForNavigation: (options?: {timeout?: number, url?: string|RegExp|function, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, waitForURL: (url: string|RegExp|function, options?: {timeout?: number, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, waitForSelector: (selector: string, options?: {state?: 'attached'|'detached'|'visible'|'hidden', strict?: boolean, timeout?: number}) => Promise<any>, waitForFunction: (callback: string|function, arg?: any, options?: {polling?: number|'raf', timeout?: number}) => Promise<void>, waitForLoadState: (state?: 'load'|'domcontentloaded'|'networkidle', options?: {timeout?: number}) => Promise<void>, waitForTimeout: (timeout: number) => Promise<void>, waitForEvent: (event: string, optionsOrPredicate?: {predicate?: function, timeout?: number}|function) => Promise<any>, waitForResponse: (urlOrPredicate: string|RegExp|function, options?: {timeout?: number}) => Promise<any>, waitForRequest: (urlOrPredicate: string|RegExp|function, options?: {timeout?: number}) => Promise<any>, waitForPopup: (options?: {timeout?: number}) => Promise<any>, waitForDownload: (options?: {timeout?: number}) => Promise<any>, waitForConsoleMessage: (options?: {predicate?: function, timeout?: number}) => Promise<any>, waitForWebSocket: (options?: {predicate?: function, timeout?: number}) => Promise<any>, locator: (selector: string, options?: {has?: Locator, hasNot?: Locator, hasNotText?: string|RegExp, hasText?: string|RegExp}) => Locator, frameLocator: (selector: string) => Object, getByRole: (role: 'alert'|'alertdialog'|'application'|'article'|'banner'|'blockquote'|'button'|'caption'|'cell'|'checkbox'|'code'|'complementary'|'contentinfo'|'definition'|'deletion'|'dialog'|'directory'|'document'|'emphasis'|'feed'|'figure'|'form'|'generic'|'grid'|'gridcell'|'group'|'heading'|'img'|'insertion'|'link'|'list'|'listbox'|'listitem'|'log'|'main'|'marquee'|'math'|'meter'|'menu'|'menubar'|'menuitem'|'menuitemcheckbox'|'menuitemradio'|'navigation'|'none'|'note'|'option'|'paragraph'|'presentation'|'progressbar'|'radio'|'radiogroup'|'region'|'row'|'rowgroup'|'rowheader'|'scrollbar'|'search'|'searchbox'|'separator'|'slider'|'spinbutton'|'status'|'strong'|'subscript'|'superscript'|'switch'|'tab'|'table'|'tablist'|'tabpanel'|'term'|'textbox'|'timer'|'toolbar'|'tooltip'|'tree'|'treegrid'|'treeitem', options?: {checked?: boolean, disabled?: boolean, exact?: boolean, expanded?: boolean, includeHidden?: boolean, level?: number, name?: string|RegExp, pressed?: boolean, selected?: boolean}) => Locator, getByLabel: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByPlaceholder: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByText: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByAltText: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByTitle: (text: string|RegExp, options?: {exact?: boolean}) => Locator, getByTestId: (testId: string|RegExp) => Locator, $: (selector: string, options?: {strict?: boolean}) => Promise<any>, $$: (selector: string) => Promise<any[]>, $eval: (selector: string, pageFunction: function, arg?: any, options?: {strict?: boolean}) => Promise<any>, $$eval: (selector: string, pageFunction: function, arg?: any) => Promise<any[]>, type: (selector: string, text: string, options?: {delay?: number, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, fill: (selector: string, value: string, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, click: (selector: string, options?: {button?: 'left'|'right'|'middle', clickCount?: number, delay?: number, force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, dblclick: (selector: string, options?: {button?: 'left'|'right'|'middle', delay?: number, force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, check: (selector: string, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number, trial?: boolean}) => Promise<void>, uncheck: (selector: string, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number, trial?: boolean}) => Promise<void>, selectOption: (selector: string, values: string|string[]|Object, options?: {force?: boolean, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, hover: (selector: string, options?: {force?: boolean, modifiers?: string[], position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, focus: (selector: string, options?: {timeout?: number}) => Promise<void>, tap: (selector: string, options?: {force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, press: (selector: string, key: string, options?: {delay?: number, noWaitAfter?: boolean, timeout?: number}) => Promise<void>, inputValue: (selector: string, options?: {timeout?: number}) => Promise<string>, isChecked: (selector: string, options?: {timeout?: number}) => Promise<boolean>, isVisible: (selector: string, options?: {timeout?: number}) => Promise<boolean>, isDisabled: (selector: string, options?: {timeout?: number}) => Promise<boolean>, isEditable: (selector: string, options?: {timeout?: number}) => Promise<boolean>, isEnabled: (selector: string, options?: {timeout?: number}) => Promise<boolean>, isHidden: (selector: string, options?: {timeout?: number}) => Promise<boolean>, innerHTML: (selector: string, options?: {timeout?: number}) => Promise<string>, outerHTML: (selector: string, options?: {timeout?: number}) => Promise<string>, textContent: (selector: string, options?: {timeout?: number}) => Promise<string>, getAttribute: (selector: string, name: string, options?: {timeout?: number}) => Promise<any>, boundingBox: (selector: string, options?: {timeout?: number}) => Promise<any>, screenshot: (selector: string, options?: {animations?: 'disabled'|'allow', caret?: 'hide'|'initial', clip?: {x: number, y: number, width: number, height: number}, fullPage?: boolean, mask?: Locator[], maskColor?: string, omitBackground?: boolean, path?: string, quality?: number, scale?: 'css'|'device', style?: string, timeout?: number, type?: 'png'|'jpeg'}) => Promise<any>, content: () => Promise<string>, url: () => Promise<string>, title: () => Promise<string>, evaluate: (pageFunction: string|function, arg?: any) => Promise<any>, evaluateHandle: (pageFunction: string|function, arg?: any) => Promise<any>, setDefaultNavigationTimeout: (timeout: number) => void, setDefaultTimeout: (timeout: number) => void, setContent: (html: string, options?: {timeout?: number, waitUntil?: 'load'|'domcontentloaded'|'networkidle'|'commit'}) => Promise<void>, setCookie: (cookies: any[]) => Promise<void>, deleteCookie: (cookies: any[]) => Promise<void>, cookies: () => Promise<any[]>, addScriptTag: (options: {content?: string, path?: string, type?: string, url?: string}) => Promise<any>, addStyleTag: (options: {content?: string, path?: string, url?: string}) => Promise<any>, addInitScript: (script: string|function, arg?: any) => Promise<void>, addLocatorHandler: (locator: Locator, handler: function, options?: {noWaitAfter?: boolean, times?: number}) => Promise<void>, removeLocatorHandler: (locator: Locator) => Promise<void>, dragAndDrop: (source: string, target: string, options?: {force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, sourcePosition?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, dispatchEvent: (selector: string, type: string, eventInit?: any, options?: {timeout?: number}) => Promise<void>, setInputFiles: (selector: string, files: string|any[], options?: {noWaitAfter?: boolean, timeout?: number}) => Promise<void>, route: (url: string|RegExp|function, handler: function, options?: {times?: number}) => Promise<void>, routeFromHAR: (har: string, options?: {notFound?: 'abort'|'fallback', update?: boolean, updateContent?: 'attach'|'embed', url?: string|RegExp}) => Promise<void>, routeWebSocket: (url: string|RegExp|function, handler: function) => Promise<void>, unroute: (url: string|RegExp|function, handler?: function) => Promise<void>, unrouteAll: (options?: {behavior?: 'default'|'wait', timeout?: number}) => Promise<void>, pdf: (options?: {displayHeaderFooter?: boolean, footerTemplate?: string, format?: string, headerTemplate?: string, height?: string|number, landscape?: boolean, margin?: {top?: string|number, right?: string|number, bottom?: string|number, left?: string|number}, outline?: boolean, pageRanges?: string, path?: string, preferCSSPageSize?: boolean, printBackground?: boolean, scale?: number, tagged?: boolean, width?: string|number}) => Promise<Buffer>, frames: () => Promise<any[]>, frame: (frameSelector: string|Object) => Promise<any>, mainFrame: () => Promise<any>, opener: () => Promise<any>, context: () => Promise<any>, isClosed: () => Promise<boolean>, emulateMedia: (options?: {colorScheme?: 'light'|'dark'|'no-preference', media?: 'screen'|'print'|'no-preference'}) => Promise<any>, setExtraHTTPHeaders: (headers: Object) => Promise<void>, setViewportSize: (viewportSize: {width: number, height: number}) => Promise<void>, viewportSize: () => Promise<{width: number, height: number}>, bringToFront: () => Promise<void>, close: (options?: {runBeforeUnload?: boolean}) => Promise<void>, pause: () => Promise<void>, consoleMessages: () => Promise<any[]>, pageErrors: () => Promise<any[]>, requests: () => Promise<any[]>, exposeBinding: (name: string, callback: function, options?: {handle?: boolean}) => Promise<void>, exposeFunction: (name: string, callback: function) => Promise<void>, removeAllListeners: (type?: string) => Promise<void>, requestGC: () => Promise<void>, video: () => Promise<any>, keyboard: {press: (key: string, options?: {delay?: number}) => Promise<void>, insertText: (text: string) => Promise<void>, up: (key: string) => Promise<void>, down: (key: string) => Promise<void>}, mouse: {move: (x: number, y: number, options?: {steps?: number}) => Promise<void>, click: (x: number, y: number, options?: {button?: 'left'|'right'|'middle', clickCount?: number, delay?: number}) => Promise<void>, dblclick: (x: number, y: number, options?: {button?: 'left'|'right'|'middle', delay?: number}) => Promise<void>, up: (options?: {button?: 'left'|'right'|'middle', clickCount?: number}) => Promise<void>, down: (options?: {button?: 'left'|'right'|'middle', clickCount?: number}) => Promise<void>, wheel: (deltaX: number, deltaY: number) => Promise<void>}, touchscreen: {tap: (x: number, y: number) => Promise<void>}, request: Object, coverage: Object, clock: Object}, pages: any[], human: {press: (key: string, options?: {delay?: number}) => Promise<void>, type: (text: string, options?: {delay?: number}) => Promise<void>, click: (selector: string, options?: {button?: 'left'|'right'|'middle', clickCount?: number, delay?: number, force?: boolean, modifiers?: string[], noWaitAfter?: boolean, position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, hover: (selector: string, options?: {force?: boolean, modifiers?: string[], position?: {x: number, y: number}, timeout?: number, trial?: boolean}) => Promise<void>, move: (x: number, y: number, options?: {steps?: number}) => Promise<void>, scrollPageToBottom: (options?: {timeout?: number}) => Promise<void>, waitForSelector: (selector: string, options?: {state?: 'attached'|'detached'|'visible'|'hidden', timeout?: number}) => Promise<any>}, pools: {browserPool: Object, sessionPool: Object}, events: {emit: (event: string, ...args: any[]) => void, listen: (event: string, callback: function) => void}, session: Object, server: {hypertext: Object, interface: {serve: (page: Object) => void}, websocket: {send: (message: string) => string, cast: (message: string) => string}}, state: Object, tools: {debug: (name?: string) => void, matchPattern: (page: Object, patterns: any[]) => Promise<any|undefined>, iteratePatterns: (page: Object, patterns: Object, patternOrder?: string[]) => Promise<string|undefined>, waitForPage: (index: number, timeout?: number) => Promise<any>, expect: any, test: any, login: (username?: string, password?: string) => void}}} context */""",
66 "proxy": { "useApifyProxy": False },
67}
68
69
70run = client.actor("cyberfly/apify-agent").call(run_input=run_input)
71
72
73print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
74for item in client.dataset(run["defaultDatasetId"]).iterate_items():
75 print(item)
76
77