The menards_search source is designed to retrieve Menards search result pages. We can return the HTML for any Menards page you like. To see the response example with retrieved data, download file in HTML format.
Request samples
The samples below illustrates how you can get a Menards search result.
import requests
from pprint import pprint
# Structure payload.
payload = {
'source': 'menards_search',
'query': 'shower'
}
# Get response.
response = requests.request(
'POST',
'https://realtime.oxylabs.io/v1/queries',
auth=('USERNAME', 'PASSWORD'),
json=payload,
)
# Instead of response with job status and results url, this will return the
# JSON response with the result.
pprint(response.json())
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 = "USERNAME";
const string Password = "PASSWORD";
var parameters = new {
source = "menards_search",
query = "shower"
};
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 org.example;
import okhttp3.*;
import org.json.JSONObject;
import java.util.concurrent.TimeUnit;
public class Main implements Runnable {
private static final String AUTHORIZATION_HEADER = "Authorization";
public static final String USERNAME = "USERNAME";
public static final String PASSWORD = "PASSWORD";
public void run() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("source", "menards_search");
jsonObject.put("query", "shower");
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)
.readTimeout(180, TimeUnit.SECONDS)
.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()) {
if (response.body() != null) {
try (var responseBody = response.body()) {
System.out.println(responseBody.string());
}
}
} catch (Exception exception) {
System.out.println("Error: " + exception.getMessage());
}
System.exit(0);
}
public static void main(String[] args) {
new Thread(new Main()).start();
}
}
{
"source": "menards_search",
"query": "shower"
}
We use synchronous integration method in our examples. If you would like to use or asynchronous integration, refer to the section.
Request parameter values
Generic
Parameter
Description
Default Value
source
Sets the scraper.
menards_search
query
The keyword or phrase to search for products.
-
start_page
Starting page number.
1
render
-
callback_url
-
user_agent_type
desktop
- mandatory parameter
Localization
Adapt results to specific stores, delivery types.
Parameter
Description
Default Value
Type
store_id
Specify a store.
-
String
pickup_at_store_eligible
Pickup available at store.
-
Boolean
in_stock_today
Item is at stock today.
-
Boolean
fulfillment_center
Order can be shipped from a centralized Menards warehouse.
-
Boolean
delivery_eligible
Item qualifies for home delivery service.
-
Boolean
Enables JavaScript rendering when set to html. .
URL to your callback endpoint. .
Device type and browser. The full list can be found .