import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

visited = set()


def crawl(url):
    if url in visited:
        return
    visited.add(url)

    r = requests.get(url)
    soup = BeautifulSoup(r.text, "html.parser")

    table = soup.find("table", id="list")
    if not table:
        return

    for a in table.find_all("a"):
        href = a.get("href")

        if not href:
            continue

        # skip navigation links
        if href.startswith("?") or href in ("./", "../"):
            continue

        full_url = urljoin(url, href)

        if href.endswith("/"):
            crawl(full_url)  # recurse into subdirectory
        else:
            print(full_url)  # file


if __name__ == "__main__":
    start = input("Directory URL: ").strip()

    if not start.endswith("/"):
        start += "/"

    crawl(start)
