Aider: 初始提交 - 网页爬虫工具

This commit is contained in:
Aider
2026-05-22 01:43:48 +00:00
commit a5f3da0201
3 changed files with 61 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
# Web Scraper
A simple web scraping tool that fetches page titles and meta descriptions.
## Usage
```bash
pip install requests beautifulsoup4
python web_scraper.py https://example.com
```
## Functions
- `fetch_title(url)` - Get page title
- `fetch_meta_description(url)` - Get meta description
- `fetch_all(url)` - Get all info as dict
Generated by Aider AI
+2
View File
@@ -0,0 +1,2 @@
requests
beautifulsoup4
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
import requests
from bs4 import BeautifulSoup
def fetch_title(url):
try:
resp = requests.get(url, timeout=10)
soup = BeautifulSoup(resp.text, "html.parser")
return soup.title.string.strip() if soup.title else "No title found"
except Exception as e:
return f"Error: {e}"
def fetch_meta_description(url):
try:
resp = requests.get(url, timeout=10)
soup = BeautifulSoup(resp.text, "html.parser")
meta = soup.find("meta", attrs={"name": "description"})
return meta.get("content", "No description found") if meta else "No description found"
except Exception as e:
return f"Error: {e}"
def fetch_all(url):
try:
resp = requests.get(url, timeout=10)
resp.raise_for_status()
soup = BeautifulSoup(resp.text, "html.parser")
title = soup.title.string.strip() if soup.title else "No title"
meta = soup.find("meta", attrs={"name": "description"})
description = meta.get("content", "No description") if meta else "No description"
return {"url": url, "title": title, "description": description, "status_code": resp.status_code}
except Exception as e:
return {"url": url, "error": str(e)}
if __name__ == "__main__":
import sys
url = sys.argv[1] if len(sys.argv) > 1 else "https://example.com"
result = fetch_all(url)
print(f"URL: {result.get(url)}")
print(f"Title: {result.get(title)}")
print(f"Description: {result.get(description)}")
print(f"Status: {result.get(status_code, result.get("error", "?"))}")