Skip to content

Commit 3fe35ad

Browse files
Merge pull request #2 from outscraper/os-added-new-sdks
added new sdks
2 parents 008efab + 52d4d12 commit 3fe35ad

2 files changed

Lines changed: 255 additions & 1 deletion

File tree

lib/outscraper.rb

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,18 @@ def google_search(query, pages_per_query: 1, uule: '', language: 'en', region: n
2424
}).parsed_response['data']
2525
end
2626

27+
def google_search_news(query, pages_per_query: 1, uule: '', tbs: '', language: 'en', region: nil, async_request: false)
28+
response = self.class.get('/google-search-news', query: {
29+
query: query,
30+
pagesPerQuery: pages_per_query,
31+
uule: uule,
32+
tbs: tbs,
33+
language: language,
34+
region: region,
35+
async: async_request
36+
}).parsed_response['data']
37+
end
38+
2739
def google_maps_search(query, limit: 20, drop_duplicates: false, language: 'en', region: nil, skip: 0)
2840
response = self.class.get("/maps/search-v2", 'query': {
2941
query: query,
@@ -36,6 +48,34 @@ def google_maps_search(query, limit: 20, drop_duplicates: false, language: 'en',
3648
}).parsed_response['data']
3749
end
3850

51+
def google_maps_search_v3(query, limit: 20, language: 'en', region: nil, skip: 0, drop_duplicates: false, enrichment: nil, async_request: true)
52+
response = self.class.get('/maps/search-v3', query: {
53+
query: query,
54+
language: language,
55+
region: region,
56+
organizationsPerQueryLimit: limit,
57+
skipPlaces: skip,
58+
dropDuplicates: drop_duplicates,
59+
enrichment: enrichment ? Array(enrichment) : nil,
60+
async: async_request
61+
}).parsed_response['data']
62+
end
63+
64+
def google_maps_directions(origin: '', destination: '', departure_time: nil, finish_time: nil, interval: nil, travel_mode: 'best', language: 'en', region: nil, fields: nil, async_request: true)
65+
response = self.class.get('/maps/directions', query: {
66+
origin: Array(origin),
67+
destination: Array(destination),
68+
departure_time: departure_time,
69+
finish_time: finish_time,
70+
interval: interval,
71+
travel_mode: travel_mode,
72+
language: language,
73+
region: region,
74+
async: async_request,
75+
fields: fields ? Array(fields) : nil
76+
}).parsed_response['data']
77+
end
78+
3979
def google_maps_reviews(query, reviews_limit: 10, limit: 1, sort: 'most_relevant', skip: 0, start: 0, cutoff: 0, cutoff_rating: 0, ignore_empty: false, language: 'en', region: nil, reviews_query: nil)
4080
response = self.class.get("/maps/reviews-v3", 'query': {
4181
query: query,
@@ -54,6 +94,34 @@ def google_maps_reviews(query, reviews_limit: 10, limit: 1, sort: 'most_relevant
5494
}).parsed_response['data']
5595
end
5696

97+
def get_google_maps_photos(query, options = {})
98+
response = self.class.get('/maps/photos-v3', query: {
99+
query: query,
100+
photosLimit: options[:photosLimit] || 100,
101+
limit: options[:limit] || 1,
102+
tag: options[:tag] || 'all',
103+
language: options[:language] || 'en',
104+
region: options[:region],
105+
fields: options[:fields],
106+
async: options.key?(:async) ? options[:async] : true,
107+
ui: options[:ui] || false,
108+
webhook: options[:webhook]
109+
}).parsed_response['data']
110+
end
111+
112+
def google_play_reviews(query, reviews_limit: 100, sort: 'most_relevant', cutoff: nil, rating: nil, language: 'en', fields: nil, async_request: false)
113+
response = self.class.get('/google-play/reviews', query: {
114+
query: query,
115+
limit: reviews_limit,
116+
sort: sort,
117+
cutoff: cutoff,
118+
rating: rating,
119+
language: language,
120+
async: async_request,
121+
fields: fields ? Array(fields) : nil
122+
}).parsed_response['data']
123+
end
124+
57125
def emails_and_contacts(query)
58126
response = self.class.get("/emails-and-contacts", 'query': {
59127
query: query,
@@ -67,5 +135,191 @@ def phones_enricher(query)
67135
async: false,
68136
}).parsed_response['data']
69137
end
138+
139+
def amazon_products(query, limit: 24, domain: 'amazon.com', postal_code: '11201', fields: nil, async_request: false)
140+
response = self.class.get('/amazon/products-v2', query: {
141+
query: query,
142+
limit: limit,
143+
domain: domain,
144+
postal_code: postal_code,
145+
async: async_request,
146+
fields: fields ? Array(fields) : nil
147+
}).parsed_response['data']
148+
end
149+
150+
def amazon_reviews(query, limit: 10, sort: 'helpful', filter_by_reviewer: 'all_reviews', filter_by_star: 'all_stars', domain: nil, fields: nil, async_request: false)
151+
response = self.class.get('/amazon/reviews', query: {
152+
query: query,
153+
limit: limit,
154+
sort: sort,
155+
filterByReviewer: filter_by_reviewer,
156+
filterByStar: filter_by_star,
157+
domain: domain,
158+
async: async_request,
159+
fields: fields ? Array(fields) : nil
160+
}).parsed_response['data']
161+
end
162+
163+
def yelp_search(query, limit: 100, async_request: false)
164+
response = self.class.get('/yelp-search', query: {
165+
query: query,
166+
limit: limit,
167+
async: async_request
168+
}).parsed_response['data']
169+
end
170+
171+
def yelp_reviews(query, limit: 100, cursor: '', sort: 'relevance_desc', cutoff: '', fields: '', async_request: false)
172+
response = self.class.get('/yelp/reviews', query: {
173+
query: query,
174+
limit: limit,
175+
cursor: cursor,
176+
sort: sort,
177+
cutoff: cutoff,
178+
fields: fields,
179+
async: async_request
180+
}).parsed_response['data']
181+
end
182+
183+
def tripadvisor_reviews(query, limit: 100, async_request: false)
184+
response = self.class.get('/tripadvisor-reviews', query: {
185+
query: query,
186+
limit: limit,
187+
async: async_request
188+
}).parsed_response['data']
189+
end
190+
191+
def app_store_reviews(query, limit: 100, sort: 'mosthelpful', cutoff: nil, fields: '', async_request: false)
192+
response = self.class.get('/appstore/reviews', query: {
193+
query: query,
194+
limit: limit,
195+
sort: sort,
196+
cutoff: cutoff,
197+
fields: fields,
198+
async: async_request
199+
}).parsed_response['data']
200+
end
201+
202+
def youtube_comments(query, per_query: 100, language: 'en', region: '', fields: '', async_request: false)
203+
response = self.class.get('/youtube-comments', query: {
204+
query: query,
205+
perQuery: per_query,
206+
language: language,
207+
region: region,
208+
fields: fields,
209+
async: async_request
210+
}).parsed_response['data']
211+
end
212+
213+
def g2_reviews(query, limit: 100, sort: '', cutoff: nil, fields: nil, async_request: false)
214+
response = self.class.get('/g2/reviews', query: {
215+
query: query,
216+
limit: limit,
217+
sort: sort,
218+
cutoff: cutoff,
219+
async: async_request,
220+
fields: fields ? Array(fields) : nil
221+
}).parsed_response['data']
222+
end
223+
224+
def trustpilot_reviews(query, limit: 100, languages: 'default', sort: '', cutoff: nil, fields: '', async_request: false)
225+
response = self.class.get('/trustpilot/reviews', query: {
226+
query: query,
227+
limit: limit,
228+
languages: languages,
229+
sort: sort,
230+
cutoff: cutoff,
231+
fields: fields,
232+
async: async_request
233+
}).parsed_response['data']
234+
end
235+
236+
def glassdoor_reviews(query, limit: 100, sort: 'DATE', cutoff: nil, async_request: false)
237+
response = self.class.get('/glassdoor/reviews', query: {
238+
query: query,
239+
limit: limit,
240+
sort: sort,
241+
cutoff: cutoff,
242+
async: async_request
243+
}).parsed_response['data']
244+
end
245+
246+
def capterra_reviews(query, limit: 100, sort: '', cutoff: nil, language: 'en', region: nil, fields: nil, async_request: false)
247+
response = self.class.get('/capterra-reviews', query: {
248+
query: query,
249+
limit: limit,
250+
sort: sort,
251+
cutoff: cutoff,
252+
language: language,
253+
region: region,
254+
async: async_request,
255+
fields: fields ? Array(fields) : nil
256+
}).parsed_response['data']
257+
end
258+
259+
def geocoding(query, async_request: false)
260+
response = self.class.get('/geocoding', query: {
261+
query: query,
262+
async: async_request
263+
}).parsed_response['data']
264+
end
265+
266+
def reverse_geocoding(query, async_request: false)
267+
response = self.class.get('/reverse-geocoding', query: {
268+
query: query,
269+
async: async_request
270+
}).parsed_response['data']
271+
end
272+
273+
def phone_identity_finder(query, async_request: false)
274+
response = self.class.get('/whitepages-phones', query: {
275+
query: query.is_a?(Array) ? query : [query],
276+
async: async_request
277+
}).parsed_response['data']
278+
end
279+
280+
def address_scraper(query, async_request: false)
281+
response = self.class.get('/whitepages-addresses', query: {
282+
query: query.is_a?(Array) ? query : [query],
283+
async: async_request
284+
}).parsed_response['data']
285+
end
286+
287+
def company_insights(query, fields: '', async_request: false, enrichments: [])
288+
response = self.class.get('/company-insights', query: {
289+
query: query.is_a?(Array) ? query : [query],
290+
fields: fields,
291+
enrichments: enrichments.is_a?(Array) ? enrichments : [enrichments],
292+
async: async_request
293+
}).parsed_response['data']
294+
end
295+
296+
def validate_emails(query, async_request: false)
297+
response = self.class.get('/email-validator', query: {
298+
query: query.is_a?(Array) ? query : [query],
299+
async: async_request
300+
}).parsed_response['data']
301+
end
302+
303+
def trustpilot(query, enrichment: [], fields: '', async_request: false)
304+
enrichment_array = enrichment ? (enrichment.is_a?(Array) ? enrichment : [enrichment]) : []
305+
response = self.class.get('/trustpilot', query: {
306+
query: query.is_a?(Array) ? query : [query],
307+
enrichment: enrichment_array,
308+
fields: fields,
309+
async: async_request
310+
}).parsed_response['data']
311+
end
312+
313+
def trustpilot_search(query, limit: 100, skip: 0, enrichment: [], fields: '', async_request: false)
314+
enrichment_array = enrichment.is_a?(Array) ? enrichment : [enrichment]
315+
response = self.class.get('/trustpilot', query: {
316+
query: query.is_a?(Array) ? query : [query],
317+
limit: limit,
318+
skip: skip,
319+
enrichment: enrichment_array,
320+
fields: fields,
321+
async: async_request
322+
}).parsed_response['data']
323+
end
70324
end
71325
end

lib/outscraper/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Outscraper
4-
VERSION = "0.2.0"
4+
VERSION = "0.3.0"
55
end

0 commit comments

Comments
 (0)