Skip to main content

Shop::eBay - eBay search results parser

img

Overview of the parser

Using the eBay product parser, you can retrieve data from product cards, collect a database of product links, track price dynamics, monitor changes in the number of sellers, gather rating scores and the number of reviews, and collect product images.

A-Parser functionality allows you to save parsing settings for future use (presets), set parsing schedules, and much more. You can use automatic query multiplication, substitution of subqueries from files, and iteration of alphanumeric combinations and lists to obtain the maximum possible number of results.

Collected data

Collected data
  • Product name
  • Product link
  • Product image
  • Price and old price
  • Currency
  • Rating and number of comments
  • Number of sellers
  • Additional information

Use cases

  • Collecting product links
  • Assessing product popularity
  • Tracking price dynamics and product popularity

Queries

As queries, you should specify product names exactly as if you were entering them directly into the eBay search form, for example:

mi band 6
iPhone 11
kingston CanvasGo+
AMD Ryzen R3 2200U

Query substitutions

You can use built-in macros for query multiplication; for example, if we want to get a very large database of products by brand:

philips
sony
xiaomi
samsung

In the query format, we will specify a character iteration from a to zzzz; this method allows for maximum rotation of search results and obtaining many new unique results:

$query {az:a:zzzz}

This macro will create 475254 additional queries for each original search query, which in total will give 4 x 475254 = 1901016 search queries—an impressive figure, but no problem at all for A-Parser. At a speed of 2000 queries per minute, such a task will be processed in just 16 hours.

Output results examples

A-Parser supports flexible result formatting thanks to the built-in Template Toolkit, which allows it to output results in any form, as well as in structured formats like CSV or JSON.

Outputting name, new and old price, currency

Result format:

$products.format('$title, $price, $old_price, $currency\n')

Result example:

Xiaomi Mi Band 4 Global Version Smart Bracelet 0.95" Color Screen 50M Waterproof, 44.99, , $
Protective Film for Xiaomi youpin haylou ls02 ls01 Solar ls05 Color I Band 5, 5.97, , $
IP68 Waterproof SmartWatch ECG PPG Blood Pressure Heart Rate sports Wristwatch, 48.75, 52.99, $
Bluetooth Smart Watch Heart Rate Blood Pressure Bracelet For iPhone XS Xiaomi Mi, 38.63, 44.99, $

Outputting name, price, and currency

Result format:

$products.format('Name: $title, Price: $price, Currency: $currency\n')

Result example:

Name: Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor, Price: 63.99, Currency: $
Name: Original Xiaomi Mi Band 6 Wristband AMOLED Color Screen - 2021!, Price: 20.00, Currency: $
Name: Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor, Price: 63.99, Currency: $
Name: Xiaomi Mi Band 6 Smart fitness bracelet, Price: 62.99, Currency: $
Name: Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor Sports Bracelet, Price: 63.99, Currency: $
Name: MI 6 Band 6 Smart 1.56" AMOLED Retina Colourful Screen Blood SpO2 Heart Fitness, Price: 82.74, Currency: $
Name: Xiaomi Mi Smart Band 6 1.56' Amoled Blood Oxygen Fitness Tracker Sport Bracelet, Price: 65.99, Currency: $

Outputting name, price, and the difference between new and old prices to a CSV table

Result format:

[% FOREACH item IN products;  
diff = item.old_price ? item.old_price - item.price : 0;
tools.CSVline(item.title, item.price, diff);
END %]

Result example:

"Xiaomi Mi Band 4 Global Version Smart Bracelet 0.95"" Color Screen 50M Waterproof",44.99,0
"IP68 Waterproof SmartWatch ECG PPG Blood Pressure Heart Rate sports Wristwatch",48.75,4.24
"Protective Film for Xiaomi youpin haylou ls02 ls01 Solar ls05 Color I Band 5",5.97,0
"Bluetooth Smart Watch Heart Rate Blood Pressure Bracelet For iPhone XS Xiaomi Mi",38.63,6.36
"Men Sports Smart Watch ECG PPG Blood Pressure Heart Rate Phone Mate for iPhone",48.75,4.24

Outputting results with parsing date to a CSV table

Result format:

[% USE date;
d = date.format(mytime, format = "%Y %d %H:%M");
FOREACH item IN products;
tools.CSVline(d, item.title, item.price, item.link);
END %]

Result example:

"2021 16 18:23","Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor",63.99,https://www.ebay.com/itm/Newest-2021-Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor/124659632314
"2021 16 18:23","Original Xiaomi Mi Band 6 Wristband AMOLED Color Screen - 2021!",20.00,https://www.ebay.com/itm/Original-Xiaomi-Mi-Band-6-Wristband-AMOLED-Color-Screen-2021/153992931607
"2021 16 18:23","Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor",63.99,https://www.ebay.com/itm/Newest-2021-Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor/133729672537
"2021 16 18:23","Xiaomi Mi Band 6 Smart fitness bracelet",62.99,https://www.ebay.com/itm/Xiaomi-Mi-Band-6-Smart-fitness-bracelet/353451130097
"2021 16 18:23","Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor Sports Bracelet",63.99,https://www.ebay.com/itm/Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor-Sports-Bracelet/164811614943

Outputting to a CSV table

Result format:

[% FOREACH item IN products; 
tools.CSVline(item.link, item.title, item.price, item.old_price, item.rating, item.reviews_count);
END %]

Initial text:

Product link, Product name, Price, Old price, Rating, Number of comments

Result example:

Product link, Product name, Price, Old price, Rating, Number of comments
https://www.ebay.com/itm/Newest-2021-Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor/124659632314,"Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor",63.99,,,
https://www.ebay.com/itm/Original-Xiaomi-Mi-Band-6-Wristband-AMOLED-Color-Screen-2021/153992931607,"Original Xiaomi Mi Band 6 Wristband AMOLED Color Screen - 2021!",20.00,,,
https://www.ebay.com/itm/Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-1-56-AMOLED-Tracker-Heart-Rate-Bracelet/284256075838,"Xiaomi Mi Band 6 Blood Oxygen Fitness 1.56"" AMOLED Tracker Heart Rate Bracelet",60.79,63.99,,
https://www.ebay.com/itm/Xiaomi-Mi-Smart-Band-6-1-56-AMOLED-Blood-Oxygen-Fitness-Tracker-Sport-Bracelet/194003608270,"Xiaomi Mi Smart Band 6 1.56' AMOLED Blood Oxygen Fitness Tracker Sport Bracelet ",61.99,77.69,,
https://www.ebay.com/itm/Xiaomi-Mi-band-6-Xiaomi-smart-2021-Newest-1-56/154411997162,"Xiaomi Mi band 6 Xiaomi smart 2021 Newest 1.56'",58.99,,,
tip

The Result format uses the Template Toolkit templating engine to output the $products array in a FOREACH loop.

To make the "Initial text" option available in the Task Editor, you need to activate "More options". In "Initial text", write the column names separated by commas and make the second line empty.

Saving in SQL format

Result format:

[% FOREACH item IN products;
"INSERT INTO products VALUES('" _ item.title _ "', '"; item.link _ "', '"; item.price _ "', '"; item.currency _ "')\n";
END %]

Result example:

INSERT INTO products VALUES('Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor', 'https://www.ebay.com/itm/Newest-2021-Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor/124659632314', '63.99', '$')
INSERT INTO products VALUES('Original Xiaomi Mi Band 6 Wristband AMOLED Color Screen - 2021!', 'https://www.ebay.com/itm/Original-Xiaomi-Mi-Band-6-Wristband-AMOLED-Color-Screen-2021/153992931607', '20.00', '$')
INSERT INTO products VALUES('Newest 2021 Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor', 'https://www.ebay.com/itm/Newest-2021-Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor/133729672537', '63.99', '$')
INSERT INTO products VALUES('Xiaomi Mi Band 6 Smart fitness bracelet', 'https://www.ebay.com/itm/Xiaomi-Mi-Band-6-Smart-fitness-bracelet/353451130097', '62.99', '$')
INSERT INTO products VALUES('Xiaomi Mi Band 6 Blood Oxygen Fitness Tracker Heart Rate Monitor Sports Bracelet', 'https://www.ebay.com/itm/Xiaomi-Mi-Band-6-Blood-Oxygen-Fitness-Tracker-Heart-Rate-Monitor-Sports-Bracelet/164811614943', '63.99', '$')
INSERT INTO products VALUES('MI 6 Band 6 Smart 1.56" AMOLED Retina Colourful Screen Blood SpO2 Heart Fitness', 'https://www.ebay.com/itm/MI-6-Band-6-Smart-1-56-AMOLED-Retina-Colourful-Screen-Blood-SpO2-Heart-Fitness/224414937192', '82.74', '$')

Dumping results to JSON

General output format:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.items = [];

FOREACH item IN p1.products;
obj.items.push({
link = item.link
title = item.title
price = item.price
});
END;

obj.json %]

Initial text:

[

Final text:

]

Result example:

[
{
"query": "mi band 6",
"items": [
{
"link": "https://www.ebay.com/itm/Mens-Smart-Watch-Fitness-Activity-Tracker-Wristwatch-for-iPhone-Samsung-Android/233817567751",
"name": "Men's Smart Watch Fitness Activity Tracker Wristwatch for iPhone Samsung Android",
"price": "48.75"
},
{
"link": "https://www.ebay.com/itm/Mens-Smart-Watch-Fitness-Activity-Tracker-Wristwatch-for-iPhone-Samsung-Android/233817567751",
"name": "Men's Smart Watch Fitness Activity Tracker Wristwatch for iPhone Samsung Android",
"price": "48.75"
},
{
"link": "https://www.ebay.com/itm/Mens-Smart-Watch-Fitness-Activity-Tracker-Wristwatch-for-iPhone-Samsung-Android/233817567751",
"name": "Men's Smart Watch Fitness Activity Tracker Wristwatch for iPhone Samsung Android",
"price": "48.75"
},
{
"link": "https://www.ebay.com/itm/Mens-Smart-Watch-Fitness-Activity-Tracker-Wristwatch-for-iPhone-Samsung-Android/233817567751",
"name": "Men's Smart Watch Fitness Activity Tracker Wristwatch for iPhone Samsung Android",
"price": "48.75"
}
]
}
]
tip

To make the "Initial text" and "End text" options available in the Task Editor, you need to activate "More options".

Possible settings

ParameterDefault valueDescription
Pages count5Number of pages to parse
Items per page50Number of products per page
Ebay domainUnited StatesChoice of domain to be used for parsing