analize <code>
you have to modify because it is not saving all content from scraped url, but just the preview. Coul you?

<code>
Python Script

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse
import sys

def get_links(base_url):
    """
    Fetches the base URL and extracts all unique links.
    Returns a list of tuples containing link text and absolute URLs.
    """
    try:
        response = requests.get(base_url)
        response.raise_for_status()
    except requests.RequestException as e:
        print(f"Error fetching {base_url}: {e}")
        return []

    soup = BeautifulSoup(response.text, 'html.parser')
    links = set()
    for a_tag in soup.find_all('a', href=True):
        href = a_tag.get('href')
        # Construct absolute URL
        absolute_url = urljoin(base_url, href)
        # Optional: Filter to same domain
        if urlparse(absolute_url).netloc == urlparse(base_url).netloc:
            link_text = a_tag.get_text(strip=True) or absolute_url
            links.add((link_text, absolute_url))
    return sorted(links, key=lambda x: x[0])

def display_links(links):
    """
    Displays the list of links in a numbered format.
    """
    if not links:
        print("No links found.")
        return
    print("\nLinks found:")
    for idx, (text, url) in enumerate(links, 1):
        print(f"{idx}. {text} - {url}")
    print()

def get_user_selection(max_num):
    """
    Prompts the user to select links by their number.
    Returns a list of selected indices.
    """
    while True:
        user_input = input("Enter link numbers to scrape separated by commas (or 'q' to quit): ")
        if user_input.lower() == 'q':
            return None
        try:
            selections = user_input.split(',')
            indices = [int(num.strip()) for num in selections]
            if all(1 <= num <= max_num for num in indices):
                return list(set(indices))  # Remove duplicates
            else:
                print(f"Please enter numbers between 1 and {max_num}.")
        except ValueError:
            print("Invalid input. Please enter numbers separated by commas.")

def scrape_page(url):
    """
    Scrapes the given URL and extracts the title, URL, and first 200 words of content.
    Returns a dictionary with the scraped data.
    """
    try:
        response = requests.get(url)
        response.raise_for_status()
    except requests.RequestException as e:
        print(f"Error fetching {url}: {e}")
        return None

    soup = BeautifulSoup(response.text, 'html.parser')
    title_tag = soup.find('title')
    title = title_tag.get_text(strip=True) if title_tag else 'No Title'

    # Extract text from all <p> tags
    paragraphs = soup.find_all('p')
    text_content = ' '.join(p.get_text(strip=True) for p in paragraphs)
    words = text_content.split()
    preview = ' '.join(words[:200]) + ('...' if len(words) > 200 else '')

    return {
        'title': title,
        'url': url,
        'content': preview
    }

def save_content(scraped_data, filename="scraped_content.txt"):
    """
    Saves the scraped data to a formatted text file.
    """
    try:
        with open(filename, 'a', encoding='utf-8') as file:
            file.write(f"Title: {scraped_data['title']}\n")
            file.write(f"URL: {scraped_data['url']}\n")
            file.write("Content:\n")
            file.write(f"{scraped_data['content']}\n")
            file.write("-" * 80 + "\n")
        print(f"Content saved to {filename}\n")
    except IOError as e:
        print(f"Error saving to file: {e}")

def main():
    print("=== Web Scraper ===")
    base_url = input("Enter the base URL to scrape: ").strip()
    if not base_url:
        print("No URL entered. Exiting.")
        sys.exit(1)

    links = get_links(base_url)
    if not links:
        print("No links to process. Exiting.")
        sys.exit(1)

    display_links(links)

    selections = get_user_selection(len(links))
    if selections is None:
        print("Exiting.")
        sys.exit(0)

    for idx in selections:
        link_text, link_url = links[idx - 1]
        print(f"\nScraping [{idx}] {link_text} - {link_url}")
        scraped = scrape_page(link_url)
        if scraped:
            print(f"\nTitle: {scraped['title']}")
            print(f"URL: {scraped['url']}")
            print(f"Content Preview:\n{scraped['content']}\n")
            while True:
                save_input = input("Do you want to save this content? (y/n): ").lower()
                if save_input == 'y':
                    save_content(scraped)
                    break
                elif save_input == 'n':
                    print("Content not saved.\n")
                    break
                else:
                    print("Please enter 'y' or 'n'.")

    print("All selected links have been processed.")

if __name__ == "__main__":
    main()