File size: 1,112 Bytes
6798e8f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from ddgs import DDGS
import requests
from bs4 import BeautifulSoup
import time

def search_web(query):
    try:
        with DDGS() as ddgs:
            results = list(ddgs.text(query, max_results=5))
        return results
    except Exception as e:
        print(f"Search error: {e}")
        return []

def scrape_page(url):
    try:
        response = requests.get(url, timeout=5)
        soup = BeautifulSoup(response.text, "html.parser")
        paragraphs = soup.find_all("p")
        content = " ".join([p.get_text() for p in paragraphs[:20]])
        return content
    except:
        return ""

def gather_research(topic):
    time.sleep(2)
    results = search_web(topic)
    
    if not results:
        return "No search results found. Try again in a few minutes.", []
    
    all_content = ""
    sources = []

    for r in results:
        url = r.get("href", "")  # back to href - confirmed correct
        title = r.get("title", url)

        if url:
            all_content += scrape_page(url) + "\n"
            sources.append(f"- [{title}]({url})")
        
    return all_content, sources