Files
davila7--claude-code-templates/cli-tool/components/skills/web-data/data-feeds/scripts/datasets.sh
T
wehub-resource-sync bb5c75ce05
Component Security Validation / Security Audit (push) Has been cancelled
Deploy to Cloudflare Pages / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:38:58 +08:00

195 lines
8.4 KiB
Bash

#!/bin/bash
# Bright Data - Dataset Wrapper
# Provides easy access to all supported datasets
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DATASET_TYPE="$1"
shift
declare -A DATASETS=(
["amazon_product"]="gd_l7q7dkf244hwjntr0"
["amazon_product_reviews"]="gd_le8e811kzy4ggddlq"
["amazon_product_search"]="gd_lwdb4vjm1ehb499uxs"
["walmart_product"]="gd_l95fol7l1ru6rlo116"
["walmart_seller"]="gd_m7ke48w81ocyu4hhz0"
["ebay_product"]="gd_ltr9mjt81n0zzdk1fb"
["homedepot_products"]="gd_lmusivh019i7g97q2n"
["zara_products"]="gd_lct4vafw1tgx27d4o0"
["etsy_products"]="gd_ltppk0jdv1jqz25mz"
["bestbuy_products"]="gd_ltre1jqe1jfr7cccf"
["linkedin_person_profile"]="gd_l1viktl72bvl7bjuj0"
["linkedin_company_profile"]="gd_l1vikfnt1wgvvqz95w"
["linkedin_job_listings"]="gd_lpfll7v5hcqtkxl6l"
["linkedin_posts"]="gd_lyy3tktm25m4avu764"
["linkedin_people_search"]="gd_m8d03he47z8nwb5xc"
["crunchbase_company"]="gd_l1vijqt9jfj7olije"
["zoominfo_company_profile"]="gd_m0ci4a4ivx3j5l6nx"
["instagram_profiles"]="gd_l1vikfch901nx3by4"
["instagram_posts"]="gd_lk5ns7kz21pck8jpis"
["instagram_reels"]="gd_lyclm20il4r5helnj"
["instagram_comments"]="gd_ltppn085pokosxh13"
["facebook_posts"]="gd_lyclm1571iy3mv57zw"
["facebook_marketplace_listings"]="gd_lvt9iwuh6fbcwmx1a"
["facebook_company_reviews"]="gd_m0dtqpiu1mbcyc2g86"
["facebook_events"]="gd_m14sd0to1jz48ppm51"
["tiktok_profiles"]="gd_l1villgoiiidt09ci"
["tiktok_posts"]="gd_lu702nij2f790tmv9h"
["tiktok_shop"]="gd_m45m1u911dsa4274pi"
["tiktok_comments"]="gd_lkf2st302ap89utw5k"
["x_posts"]="gd_lwxkxvnf1cynvib9co"
["youtube_profiles"]="gd_lk538t2k2p1k3oos71"
["youtube_videos"]="gd_lk56epmy2i5g7lzu0k"
["youtube_comments"]="gd_lk9q0ew71spt1mxywf"
["reddit_posts"]="gd_lvz8ah06191smkebj4"
["google_maps_reviews"]="gd_luzfs1dn2oa0teb81"
["google_shopping"]="gd_ltppk50q18kdw67omz"
["google_play_store"]="gd_lsk382l8xei8vzm4u"
["apple_app_store"]="gd_lsk9ki3u2iishmwrui"
["reuter_news"]="gd_lyptx9h74wtlvpnfu"
["github_repository_file"]="gd_lyrexgxc24b3d4imjt"
["yahoo_finance_business"]="gd_lmrpz3vxmz972ghd7"
["zillow_properties_listing"]="gd_lfqkr8wm13ixtbd8f5"
["booking_hotel_listings"]="gd_m5mbdl081229ln6t4a"
)
if [ -z "$DATASET_TYPE" ]; then
echo "Usage: $0 <dataset_type> <url> [additional_params...]" >&2
echo "" >&2
echo "Available datasets:" >&2
echo "" >&2
echo "E-COMMERCE:" >&2
echo " amazon_product <url> - Amazon product data" >&2
echo " amazon_product_reviews <url> - Amazon product reviews" >&2
echo " amazon_product_search <keyword> <domain_url> - Amazon search" >&2
echo " walmart_product <url> - Walmart product data" >&2
echo " walmart_seller <url> - Walmart seller data" >&2
echo " ebay_product <url> - eBay product data" >&2
echo " homedepot_products <url> - Home Depot product data" >&2
echo " zara_products <url> - Zara product data" >&2
echo " etsy_products <url> - Etsy product data" >&2
echo " bestbuy_products <url> - Best Buy product data" >&2
echo "" >&2
echo "PROFESSIONAL NETWORKS:" >&2
echo " linkedin_person_profile <url> - LinkedIn person profile" >&2
echo " linkedin_company_profile <url> - LinkedIn company profile" >&2
echo " linkedin_job_listings <url> - LinkedIn job listings" >&2
echo " linkedin_posts <url> - LinkedIn posts" >&2
echo " linkedin_people_search <url> <first_name> <last_name> - LinkedIn people search" >&2
echo " crunchbase_company <url> - Crunchbase company data" >&2
echo " zoominfo_company_profile <url> - ZoomInfo company profile" >&2
echo "" >&2
echo "SOCIAL MEDIA - INSTAGRAM:" >&2
echo " instagram_profiles <url> - Instagram profile data" >&2
echo " instagram_posts <url> - Instagram post data" >&2
echo " instagram_reels <url> - Instagram reel data" >&2
echo " instagram_comments <url> - Instagram comments" >&2
echo "" >&2
echo "SOCIAL MEDIA - FACEBOOK:" >&2
echo " facebook_posts <url> - Facebook post data" >&2
echo " facebook_marketplace_listings <url> - Facebook marketplace" >&2
echo " facebook_company_reviews <url> <num_reviews> - Company reviews" >&2
echo " facebook_events <url> - Facebook events" >&2
echo "" >&2
echo "SOCIAL MEDIA - TIKTOK:" >&2
echo " tiktok_profiles <url> - TikTok profile data" >&2
echo " tiktok_posts <url> - TikTok post data" >&2
echo " tiktok_shop <url> - TikTok shop product" >&2
echo " tiktok_comments <url> - TikTok video comments" >&2
echo "" >&2
echo "SOCIAL MEDIA - OTHER:" >&2
echo " x_posts <url> - X (Twitter) post data" >&2
echo " youtube_profiles <url> - YouTube channel data" >&2
echo " youtube_videos <url> - YouTube video data" >&2
echo " youtube_comments <url> [num] - YouTube comments (default: 10)" >&2
echo " reddit_posts <url> - Reddit post data" >&2
echo "" >&2
echo "GOOGLE SERVICES:" >&2
echo " google_maps_reviews <url> [days] - Google Maps reviews (default: 3 days)" >&2
echo " google_shopping <url> - Google Shopping product" >&2
echo " google_play_store <url> - Google Play Store app" >&2
echo "" >&2
echo "OTHER:" >&2
echo " apple_app_store <url> - Apple App Store app" >&2
echo " reuter_news <url> - Reuters news article" >&2
echo " github_repository_file <url> - GitHub repository file" >&2
echo " yahoo_finance_business <url> - Yahoo Finance business" >&2
echo " zillow_properties_listing <url> - Zillow property listing" >&2
echo " booking_hotel_listings <url> - Booking.com hotel" >&2
exit 1
fi
# Get dataset ID
DATASET_ID="${DATASETS[$DATASET_TYPE]}"
if [ -z "$DATASET_ID" ]; then
echo "Error: Unknown dataset type '$DATASET_TYPE'" >&2
echo "Run '$0' without arguments to see available datasets" >&2
exit 1
fi
case "$DATASET_TYPE" in
amazon_product_search)
KEYWORD="$1"
DOMAIN_URL="$2"
if [ -z "$KEYWORD" ] || [ -z "$DOMAIN_URL" ]; then
echo "Usage: $0 amazon_product_search <keyword> <domain_url>" >&2
exit 1
fi
INPUT_JSON=$(jq -n --arg keyword "$KEYWORD" --arg url "$DOMAIN_URL" \
'{keyword: $keyword, url: $url, pages_to_search: "1"}')
;;
linkedin_people_search)
URL="$1"
FIRST_NAME="$2"
LAST_NAME="$3"
if [ -z "$URL" ] || [ -z "$FIRST_NAME" ] || [ -z "$LAST_NAME" ]; then
echo "Usage: $0 linkedin_people_search <url> <first_name> <last_name>" >&2
exit 1
fi
INPUT_JSON=$(jq -n --arg url "$URL" --arg first "$FIRST_NAME" --arg last "$LAST_NAME" \
'{url: $url, first_name: $first, last_name: $last}')
;;
facebook_company_reviews)
URL="$1"
NUM_REVIEWS="${2:-10}"
if [ -z "$URL" ]; then
echo "Usage: $0 facebook_company_reviews <url> [num_reviews]" >&2
exit 1
fi
INPUT_JSON=$(jq -n --arg url "$URL" --arg num "$NUM_REVIEWS" \
'{url: $url, num_of_reviews: $num}')
;;
google_maps_reviews)
URL="$1"
DAYS_LIMIT="${2:-3}"
if [ -z "$URL" ]; then
echo "Usage: $0 google_maps_reviews <url> [days_limit]" >&2
exit 1
fi
INPUT_JSON=$(jq -n --arg url "$URL" --arg days "$DAYS_LIMIT" \
'{url: $url, days_limit: $days}')
;;
youtube_comments)
URL="$1"
NUM_COMMENTS="${2:-10}"
if [ -z "$URL" ]; then
echo "Usage: $0 youtube_comments <url> [num_comments]" >&2
exit 1
fi
INPUT_JSON=$(jq -n --arg url "$URL" --arg num "$NUM_COMMENTS" \
'{url: $url, num_of_comments: $num}')
;;
*)
# Default: just URL input
URL="$1"
if [ -z "$URL" ]; then
echo "Usage: $0 $DATASET_TYPE <url>" >&2
exit 1
fi
INPUT_JSON=$(jq -n --arg url "$URL" '{url: $url}')
;;
esac
# Call the fetch script
exec "$SCRIPT_DIR/fetch.sh" "$DATASET_ID" "$INPUT_JSON"