scrapeunblocker 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +14 -0
- data/lib/scrapeunblocker/client.rb +28 -0
- data/lib/scrapeunblocker/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '038dc9fc1bd496b441430ed4f1def53055dfb98db2cf21d40ec0242bcd66f344'
|
|
4
|
+
data.tar.gz: d8fb2745df9da6ac37db17308670f87b1c4131e2b9dfde9e5107ee4fe9e9c260
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ebc1b6eec94316dfb50c56b6109212eaaec54e5b8a0087f8e11f9cc9c634c751c1fed8bafe0bad51d8cf45ba5cd4d978f46feb40fb9c0d64de18aee98712ec46
|
|
7
|
+
data.tar.gz: 444e12bb48cfcf2e3b1cee4d76676c4334d234cb76a8642917845e4ac3b9a179786abac31c77e7251cf2eca95c1bf3e16ae12d4ace9c6aa131581617d01c12ad
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.8 (2026-07-31)
|
|
4
|
+
|
|
5
|
+
- Added `ebay_search` for the new eBay Search plugin: listings from any of the 19 regional eBay marketplaces as structured JSON - title, numeric price and currency, condition with a normalised `conditionCode`, seller username and feedback, shipping cost, sold/watcher/bid counts, image and a clean item URL.
|
|
6
|
+
- Filters map straight onto the plugin: `marketplace`, `condition`, `sort`, `listing_type`, `min_price`/`max_price`, `free_shipping`, `seller`, `category`, plus `page`/`page_size` (60, 120 or 240).
|
|
7
|
+
- The response carries `exactMatches`; it is `false` when eBay found no match for the keyword and answered with its own loosely-related suggestions.
|
|
8
|
+
|
|
9
|
+
No breaking changes.
|
|
10
|
+
|
|
3
11
|
## 0.1.7 (2026-07-27)
|
|
4
12
|
|
|
5
13
|
- Registry and README links to scrapeunblocker.com now carry UTM parameters so traffic from package registries is attributable. No functional changes.
|
data/README.md
CHANGED
|
@@ -96,6 +96,20 @@ goods["results"].each { |item| puts "#{item['title']} #{item['price']} #{item['u
|
|
|
96
96
|
|
|
97
97
|
`channel` is one of `"1688"` (default), `"taobao"` or `"official"`. `sort` is one of `"default"`, `"price_asc"`, `"price_desc"` or `"best_selling"`. `page_size` max is 60. Oopbuy trademark-blocks brand keywords at its own backend: those come back as a successful `200` with `keywordRejected: true` and an empty `results` array, not an error.
|
|
98
98
|
|
|
99
|
+
## eBay search
|
|
100
|
+
|
|
101
|
+
```ruby
|
|
102
|
+
items = su.ebay_search("iphone 13", marketplace: "ebay.com", condition: "used", sort: "newly_listed")
|
|
103
|
+
|
|
104
|
+
if items["exactMatches"]
|
|
105
|
+
items["results"].each do |item|
|
|
106
|
+
puts [item["title"], item["price"], item["currency"], item["condition"]].join(" | ")
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
`marketplace` is any of the 19 regional eBay hosts (`ebay.com` default). `condition` is one of `"new"`, `"open_box"`, `"refurbished"`, `"used"` or `"for_parts"`; `sort` is one of `"best_match"` (default), `"newly_listed"`, `"ending_soon"`, `"price_asc"` or `"price_desc"`; `page_size` is 60, 120 or 240. `exactMatches` is `false` when eBay found nothing for the keyword and answered with its own loosely-related suggestions instead, so check it before using the listings.
|
|
112
|
+
|
|
99
113
|
## Cookies and the serving proxy
|
|
100
114
|
|
|
101
115
|
```ruby
|
|
@@ -93,6 +93,34 @@ module ScrapeUnblocker
|
|
|
93
93
|
page_size: page_size, sort: sort, proxy_country: proxy_country)
|
|
94
94
|
end
|
|
95
95
|
|
|
96
|
+
# Search eBay and return the listings as a Hash.
|
|
97
|
+
#
|
|
98
|
+
# Each listing carries title, numeric price and currency, condition (with a
|
|
99
|
+
# normalised conditionCode), seller username and feedback, shipping cost,
|
|
100
|
+
# sold/watcher/bid counts, image and a clean item URL.
|
|
101
|
+
#
|
|
102
|
+
# +marketplace+ is a regional eBay host such as "ebay.com" (default) or
|
|
103
|
+
# "ebay.de"; +condition+ is one of "new", "open_box", "refurbished", "used"
|
|
104
|
+
# or "for_parts"; +sort+ is one of "best_match" (default), "newly_listed",
|
|
105
|
+
# "ending_soon", "price_asc" or "price_desc"; +listing_type+ is "all"
|
|
106
|
+
# (default), "buy_it_now" or "auction"; +page_size+ is 60, 120 or 240.
|
|
107
|
+
#
|
|
108
|
+
# When eBay finds no exact match it still serves a page of loosely related
|
|
109
|
+
# suggestions, and the response then carries <tt>exactMatches: false</tt>.
|
|
110
|
+
def ebay_search(keyword, marketplace: "ebay.com", page: 1, page_size: 60,
|
|
111
|
+
condition: nil, sort: "best_match", listing_type: "all",
|
|
112
|
+
min_price: nil, max_price: nil, free_shipping: false,
|
|
113
|
+
seller: nil, category: nil, proxy_country: nil)
|
|
114
|
+
post_json("/marketplace/ebay-search",
|
|
115
|
+
keyword: keyword, marketplace: marketplace, page: page,
|
|
116
|
+
page_size: page_size, condition: condition, sort: sort,
|
|
117
|
+
listing_type: listing_type, min_price: min_price,
|
|
118
|
+
max_price: max_price,
|
|
119
|
+
free_shipping: free_shipping ? true : nil,
|
|
120
|
+
seller: seller, category: category,
|
|
121
|
+
proxy_country: proxy_country)
|
|
122
|
+
end
|
|
123
|
+
|
|
96
124
|
# Fetch an image URL through the bypass chain and return its raw bytes.
|
|
97
125
|
def get_image(url, proxy_country: nil)
|
|
98
126
|
request("/getImage", url: url, proxy_country: proxy_country)[:body]
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: scrapeunblocker
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ScrapeUnblocker
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-07-
|
|
11
|
+
date: 2026-07-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: JS-rendered pages that bypass Cloudflare, DataDome, PerimeterX and Akamai,
|
|
14
14
|
plus Google SERP and Skyscanner flights/hotels/car-hire scraping as JSON.
|