58 lines
1.7 KiB
Python
Executable File
58 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
DDGS Search Script - Python script to perform web searches using ddgs
|
|
"""
|
|
|
|
import sys
|
|
import json
|
|
import argparse
|
|
|
|
def search_ddgs(query, max_results=10):
|
|
"""
|
|
Perform a search using ddgs (DuckDuckGo Search)
|
|
|
|
Args:
|
|
query (str): Search query
|
|
max_results (int): Maximum number of results to return
|
|
|
|
Returns:
|
|
list: List of search results with title, url, and description
|
|
"""
|
|
try:
|
|
from ddgs import DDGS
|
|
except ImportError:
|
|
print(json.dumps({"error": "ddgs library not found. Please install it using: pip install ddgs"}))
|
|
sys.exit(1)
|
|
|
|
try:
|
|
ddgs = DDGS()
|
|
results = ddgs.text(query, max_results=max_results)
|
|
|
|
# Format results to include only necessary fields
|
|
formatted_results = []
|
|
for result in results:
|
|
formatted_result = {
|
|
"title": result.get("title", ""),
|
|
"href": result.get("href", ""),
|
|
"body": result.get("body", "")
|
|
}
|
|
formatted_results.append(formatted_result)
|
|
|
|
return formatted_results
|
|
except Exception as e:
|
|
print(json.dumps({"error": str(e)}))
|
|
sys.exit(1)
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="DDGS Search Script")
|
|
parser.add_argument("query", help="Search query")
|
|
parser.add_argument("--num-results", "-n", type=int, default=10,
|
|
help="Number of search results to return (default: 10)")
|
|
|
|
args = parser.parse_args()
|
|
|
|
results = search_ddgs(args.query, args.num_results)
|
|
print(json.dumps(results, ensure_ascii=False, indent=2))
|
|
|
|
if __name__ == "__main__":
|
|
main() |