import requests import time from datetime import datetime class RankTracker: def __init__(self, api_key, target_domain): self.api_key = api_key self.target_domain = target_domain def check_rank(self, keyword): response = requests.get("https://api.ujeebu.com/serp", headers={"ApiKey": self.api_key}, params={ "search": keyword, "search_type": "search", "lang": "en", "location": "US", "results_count": 100 # Check top 100 }) if response.status_code != 200: return None results = response.json().get("organic_results", []) # Find the position of the target domain for result in results: link = result.get("link", "") if self.target_domain in link: return { "keyword": keyword, "position": result.get("position"), "url": link, "title": result.get("title", ""), "date": datetime.now().strftime("%Y-%m-%d %H:%M:%S") } return { "keyword": keyword, "position": None, # Not in top 100 "url": None, "title": None, "date": datetime.now().strftime("%Y-%m-%d %H:%M:%S") } def track_multiple_keywords(self, keywords): results = [] for keyword in keywords: results.append(self.check_rank(keyword)) time.sleep(2) # Rate limiting return results # Usage tracker = RankTracker("YOUR_API_KEY", "example.com") keywords = ["web scraping", "data extraction", "web scraping tools"] rankings = tracker.track_multiple_keywords(keywords) for ranking in rankings: if ranking["position"]: print(f"Keyword: {ranking['keyword']} - Position: {ranking['position']}") else: print(f"Keyword: {ranking['keyword']} - Not in top 100")