1from apify_client import ApifyClient
2
3
4
5client = ApifyClient("<YOUR_API_TOKEN>")
6
7
8run_input = {
9 "selectors": ["table table tr[class='athing'] td:nth-child(3) > span > a"],
10 "scrapers": """// (input) => ({\r
11// title: {\r
12// selectors: [\"table table tr[class='athing'] td:nth-child(3) > span > a\"],\r
13// extractor: node => node.innerText,\r
14// },\r
15// links: {\r
16// contents: {\r
17// selectors: [\"table table tr[class='athing'] td:nth-child(3) > span > a\"],\r
18// extractor: node => node.href,\r
19// },\r
20// comments: {\r
21// selectors: [\"table table tr td[class='subtext'] span a[href^=item]:first-child\"],\r
22// extractor: node => node.href,\r
23// },\r
24// },\r
25// })""",
26 "limits.alerts": 10,
27 "limits.results": 100,
28 "filters": """// [\r
29// \t({title}) => title.length > 1, // absolute\r
30// \t({links}) => links.contents.includes('http'), // absolute\r
31// \t({price}, {price: oldPrice}) => price < oldPrice, // relative\r
32// ]""",
33 "matcher": """// ({exclude, include}) => ({include}) // ignore fields in comparison with records\r
34// ({price, ...match}) => match // e.g. ignore dynamic field \"price\" from matching""",
35 "pages.retries": 3,
36 "hooks.load": """// async page => {
37// \tawait page.click('button[name=\"cookie-consent\"]').catch(error => null);
38// }""",
39 "proxy": { "useApifyProxy": False },
40}
41
42
43run = client.actor("cyberfly/listingmonitor").call(run_input=run_input)
44
45
46print("πΎ Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
47for item in client.dataset(run["defaultDatasetId"]).iterate_items():
48 print(item)
49
50