from ddgs import DDGS def search(prompt, page, region='us-en', safesearch='off', timelimit='y'): results = DDGS().text( prompt, region=region, safesearch=safesearch, timelimit=timelimit, page=page, backend="auto" ) return results def images(prompt, page, region='us-en', safesearch='off', timelimit='y'): results = DDGS().images( prompt, region=region, safesearch=safesearch, timelimit=timelimit, page=page, backend="auto" ) return results def videos(prompt, page, region='us-en', safesearch='off', timelimit='y'): results = DDGS().videos( prompt, region=region, safesearch=safesearch, timelimit=timelimit, page=page, backend="auto" ) return results def format(results, prompt): formatted = [] formatted.append(f"Query: {prompt}") for i, result in enumerate(results, 1): formatted.append(f"### {i}. {result['title']}") formatted.append(f"**Link:** [{result['title']}]({result['href']})") formatted.append("") formatted.append(result['body'].strip()) formatted.append("-" * 80) formatted.append("") return "\n".join(formatted) def extract_urls(results): return [result['href'] for result in results] async def main(): prompt = "chatgpt" page = 1 text_results = search(prompt, page) print(text_results) formatted_results = format(text_results, prompt) print(formatted_results) urls = extract_urls(text_results) print(urls) if __name__ == "__main__": import asyncio asyncio.run(main())