Spaces:
Sleeping
Sleeping
| """Data loading utilities for phishing detection.""" | |
| import pandas as pd | |
| from pathlib import Path | |
| from typing import Union | |
| def load_phishing_urls( | |
| file_path: Union[str, Path] = None, | |
| is_phishing: bool = True, | |
| ) -> pd.DataFrame: | |
| """ | |
| Load phishing URLs from a text file into a DataFrame. | |
| Args: | |
| file_path: Path to the file containing phishing URLs (one per line). | |
| If None, uses the default phishing-links-ACTIVE.txt in the data directory. | |
| is_phishing: Whether to add a label column indicating phishing (default True) | |
| Returns: | |
| DataFrame with columns: url_id, url, and optionally is_phishing | |
| """ | |
| if file_path is None: | |
| # Default to the file in the same directory as this module | |
| file_path = Path(__file__).parent / "phishing-links-ACTIVE.txt" | |
| else: | |
| file_path = Path(file_path) | |
| if not file_path.exists(): | |
| raise FileNotFoundError(f"File not found: {file_path}") | |
| # Read URLs from file | |
| with open(file_path, 'r', encoding='utf-8') as f: | |
| urls = [line.strip() for line in f if line.strip()] | |
| # Create DataFrame | |
| df = pd.DataFrame({ | |
| 'url_id': range(len(urls)), | |
| 'url': urls, | |
| 'is_phishing': int(is_phishing) | |
| }) | |
| return df | |