1from apify_client import ApifyClient
2
3
4
5client = ApifyClient("<YOUR_API_TOKEN>")
6
7
8run_input = {
9 "startUrls": [{ "url": "https://www.boulanger.com/resultats?tr=samsung" }],
10 "pageFunction": """async function pageFunction(context) {
11 let data = {}
12 let userData = context.request.userData
13 data.url = context.request.url
14 data.label = userData.label
15
16 let items = await context.page.evaluate(() => {
17 const item = $('.product-item')
18 // const item = $('.rm-product')
19 const itemInfo = item.map(function(i,elem) {
20 let obj = {}
21 obj.title = $(this).find('h2').text()
22 obj.sponsored = false
23 obj.price = $(this).find('.price__amount').text()
24 obj.img = $(this).find('img').attr('src')
25 obj.rank = i+1
26 return obj
27 }).get()
28
29 const itemSponsored = $('.rm-product')
30 const itemInfoSponsored = itemSponsored.map(function(i,elem) {
31 let obj = {}
32 obj.title = $(this).find('h2').text()
33 obj.sponsored = true
34 obj.price = $(this).find('.rm_price').text()
35 obj.img = $(this).find('img').attr('src')
36 obj.rank = i+1
37 return obj
38 }).get()
39
40 // return [...itemInfo,...itemInfoSponsored]
41 const allitems = itemInfoSponsored.concat(itemInfo)
42 return allitems
43 })
44
45 let itemsWithDataProp = items.map(obj => {
46 for(const key of Object.keys(data) ){
47 obj[key] = data[key]
48 }
49 return obj
50 })
51 return itemsWithDataProp;
52}
53""",
54 "proxyConfiguration": {
55 "useApifyProxy": True,
56 "apifyProxyGroups": ["RESIDENTIAL"],
57 "apifyProxyCountry": "FR",
58 },
59}
60
61
62run = client.actor("anchor/boulanger").call(run_input=run_input)
63
64
65print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
66for item in client.dataset(run["defaultDatasetId"]).iterate_items():
67 print(item)
68
69