Created
September 16, 2020 13:59
-
-
Save alirezamika/ef540b87a63f12cf6a70ea9e03f23555 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from autoscraper import AutoScraper | |
from flask import Flask, request | |
ebay_scraper = AutoScraper() | |
etsy_scraper = AutoScraper() | |
ebay_scraper.load('ebay-search') | |
etsy_scraper.load('etsy-search') | |
app = Flask(__name__) | |
def get_ebay_result(search_query): | |
url = 'https://www.ebay.com/sch/i.html?_nkw=%s' % search_query | |
result = ebay_scraper.get_result_similar(url, group_by_alias=True) | |
return _aggregate_result(result) | |
def get_etsy_result(search_query): | |
url = 'https://www.etsy.com/search?q=%s' % search_query | |
result = etsy_scraper.get_result_similar(url, group_by_alias=True) | |
result['url'] = [f'https://www.etsy.com/listing/{i}' for i in result['url']] | |
return _aggregate_result(result) | |
def _aggregate_result(result): | |
final_result = [] | |
for i in range(len(list(result.values())[0])): | |
final_result.append({alias: result[alias][i] for alias in result}) | |
return final_result | |
@app.route('/', methods=['GET']) | |
def search_api(): | |
query = request.args.get('q') | |
return dict(result=get_ebay_result(query) + get_etsy_result(query)) | |
if __name__ == '__main__': | |
app.run(port=8080, host='0.0.0.0') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment