Oxylabs Documentation
English
Search
K

Idealo

Intro

You can get Idealo results by providing your own URLs to our service. We can return the HTML of any Idealo page you like.
Please note that you will scrape Idealo by employing the universal_ecommerce source. To learn about all the various ways you can fine-tune this source, please visit this page.

Input

The example below illustrates how to get an Idealo category page result in HTML format.
JSON
cURL
Python
PHP
C#
Golang
Java
Node.js
HTTP
{
"source": "universal_ecommerce",
"url": "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation",
"geo_location": "Germany",
"render": "html"
}
curl --user "user:pass" \
'https://realtime.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
-d '{"source": "universal_ecommerce", "url": "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation", "geo_location": "Germany", "render": "html"}'
import requests
from pprint import pprint
# Structure payload.
payload = {
'source': 'universal_ecommerce',
'url': 'https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation',
'geo_location': 'Germany',
'render': 'html',
}
# Get response.
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('user', 'pass1'),
json=payload,
)
# Instead of response with job status and results url, this will return the
# JSON response with the result.
pprint(response.json())
<?php
$params = [
'source' => 'universal_ecommerce',
'url' => 'https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation',
'geo_location' => 'Germany',
'render' => 'html',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://realtime.oxylabs.io/v1/queries");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERPWD, "user" . ":" . "pass1");
$headers = array();
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo $result;
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
namespace OxyApi
{
class Program
{
static async Task Main()
{
const string Username = "YOUR_USERNAME";
const string Password = "YOUR_PASSWORD";
var parameters = new Dictionary<string, string>()
{
{ "source", "universal_ecommerce" },
{ "url", "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation" },
{ "geo_location" : "Germany" },
{ "render" : "html" },
};
var client = new HttpClient();
Uri baseUri = new Uri("https://realtime.oxylabs.io");
client.BaseAddress = baseUri;
var requestMessage = new HttpRequestMessage(HttpMethod.Post, "/v1/queries");
requestMessage.Content = JsonContent.Create(parameters);
var authenticationString = $"{Username}:{Password}";
var base64EncodedAuthenticationString = Convert.ToBase64String(System.Text.ASCIIEncoding.UTF8.GetBytes(authenticationString));
requestMessage.Headers.Add("Authorization", "Basic " + base64EncodedAuthenticationString);
var response = await client.SendAsync(requestMessage);
var contents = await response.Content.ReadAsStringAsync();
Console.WriteLine(contents);
}
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
const Username = "YOUR_USERNAME"
const Password = "YOUR_PASSWORD"
payload := map[string]string{
"source": "universal_ecommerce",
"url": "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation",
"geo_location": "Germany",
"render": "html",
}
jsonValue, _ := json.Marshal(payload)
client := &http.Client{}
request, _ := http.NewRequest("POST",
"https://realtime.oxylabs.io/v1/queries",
bytes.NewBuffer(jsonValue),
)
request.SetBasicAuth(Username, Password)
response, _ := client.Do(request)
responseText, _ := ioutil.ReadAll(response.Body)
fmt.Println(string(responseText))
}
package org.example;
import okhttp3.*;
import org.json.JSONObject;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization";
public static final String USERNAME = "YOUR_USERNAME";
public static final String PASSWORD = "YOUR_PASSWORD";
public void run() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("source", "universal_ecommerce");
jsonObject.put("url", "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation");
jsonObject.put("geo_location", "Germany");
jsonObject.put("render": "html");
Authenticator authenticator = (route, response) -> {
String credential = Credentials.basic(USERNAME, PASSWORD);
return response
.request()
.newBuilder()
.header(AUTHORIZATION_HEADER, credential)
.build();
};
var client = new OkHttpClient.Builder()
.authenticator(authenticator)
.build();
var mediaType = MediaType.parse("application/json; charset=utf-8");
var body = RequestBody.create(jsonObject.toString(), mediaType);
var request = new Request.Builder()
.url("https://realtime.oxylabs.io/v1/queries")
.post(body)
.build();
try (var response = client.newCall(request).execute()) {
assert response.body() != null;
System.out.println(response.body().string());
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
System.exit(0);
}
public static void main(String[] args) {
new Thread(new Main()).start();
}
}
import fetch from 'node-fetch';
const username = 'YOUR_USERNAME';
const password = 'YOUR_PASSWORD';
const body = {
'source': 'universal_ecommerce',
'url': 'https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation',
'geo_location': 'Germany',
'render': 'html'
};
const response = await fetch('https://realtime.oxylabs.io/v1/queries', {
method: 'post',
body: JSON.stringify(body),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + Buffer.from(`${username}:${password}`).toString('base64'),
}
});
console.log(await response.json());
# The whole string you submit has to be URL-encoded.
https://realtime.oxylabs.io/v1/queries?source=universal_ecommerce&url=https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation&geo_location=Germany&render=html&access_token=12345abcde
The example uses the Realtime integration method. If you would like to use some other integration method in your query (e.g., Push-Pull or Proxy Endpoint), refer to the integration methods section.
Although we do not have a dedicated parser for Idealo, you can write your own parsing instructions with Custom Parser feature and get structured data.

Output

After executing the code example above, you can expect to get an output similar to this:
{
"results": [
{
"content":"<!doctype html>\n<html lang=\"en\">\n<head>
...
</script></body>\n</html>\n",
"created_at": "2023-03-22 07:31:25",
"updated_at": "2023-03-22 07:31:47",
"page": 1,
"url": "https://www.idealo.de/preisvergleich/MainSearchProductCategory.html?q=playstation",
"job_id": "7044208937247214593",
"status_code": 200
}
]
}
Last modified 3mo ago