chat-backend/scraping/URL_UPDATE_GUIDE.md
Django Template 6d11b80c03 Add comprehensive AI chat integration and URL management features
Features Added:
- AI_CHAT_INTEGRATION.md: Complete reference for Django → Vue.js AI chat integration
- URL update functionality with validation and accessibility testing
- Business edit interface with re-crawl capabilities
- Enhanced export functionality documentation
- AI-ready data export specifications (JSONL, OpenAI training format, knowledge base)
- URL_UPDATE_GUIDE.md: Comprehensive URL management documentation
- Edit business template with real-time validation

AI Integration Planning:
- Complete data flow architecture (Django scraping → AI processing → Vue.js chat)
- Export format specifications for AI training and knowledge base sync
- Implementation roadmap for seamless backend-frontend integration
- Code examples and API specifications for both systems

URL Management Features:
- Smart URL validation with accessibility testing
- Business information editing with URL update capabilities
- Optional re-crawling after URL changes
- API endpoints for programmatic URL updates
- Enhanced UI with edit buttons and quick actions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 12:11:03 +05:30

242 lines
6.5 KiB
Markdown

# URL Update & Management Guide
## 🔄 **URL Update Functionality**
Your Django application now has comprehensive URL update and management features for handling wrong URLs or URL changes.
## ✅ **Features Implemented**
### **1. URL Validation**
-**Format validation** - Ensures URL has proper http/https scheme
-**Accessibility testing** - Checks if URL is actually reachable
-**Real-time validation** - Tests URL before saving to database
### **2. Multiple Update Methods**
-**Full business edit** - Update URL along with other business details
-**Quick URL update** - Update only the URL via modal/API
-**Validation feedback** - Clear error messages for invalid URLs
### **3. Smart Re-crawling**
-**Optional re-crawl** - Choose whether to re-scrape after URL change
-**Page comparison** - Shows old vs new page counts
-**Status tracking** - Real-time crawling status updates
## 🛠️ **How to Update URLs**
### **Method 1: Full Business Edit**
1. Go to business detail page
2. Click **"Edit Business"** button
3. Change the website URL
4. Optionally check **"Re-crawl website if URL changes"**
5. Click **"Update Business"**
### **Method 2: Quick URL Update**
1. On edit page, click **"Update URL Only"**
2. Enter new URL in modal
3. Click **"Update URL"**
4. System validates and updates immediately
### **Method 3: API Update**
```javascript
fetch('/scraping/{business_id}/update-url/', {
method: 'POST',
body: new FormData([['website_url', 'https://newdomain.com']]),
headers: {'X-CSRFToken': csrfToken}
})
```
## 🔍 **Validation Process**
When you update a URL, the system:
1. **Format Check** - Validates URL format (must have http/https)
2. **Accessibility Test** - Sends HTTP HEAD request to verify URL is reachable
3. **Status Code Check** - Ensures server responds with 200-399 status
4. **Database Update** - Only saves if all validations pass
5. **Rollback Protection** - Reverts to old URL if any step fails
## 📱 **User Interface Features**
### **Business Detail Page**
-**Edit Business** button in header
-**Re-crawl** button (if pages exist)
-**Export Data** button for current data
### **Edit Business Page**
-**Current info sidebar** - Shows existing values
-**URL validation** - Real-time feedback
-**Re-crawl checkbox** - Automatic re-crawl option
-**Quick actions** - Test URL, Update URL only, Re-crawl now
### **URL Update Modal**
-**Focused URL editing** - Quick URL-only changes
-**Validation feedback** - Shows success/error messages
-**Auto-refresh** - Updates main form after successful change
## 🚨 **Error Handling**
### **Common Error Scenarios**
1. **Invalid URL Format**
```
Error: Please enter a valid URL with http:// or https://
```
2. **Unreachable URL**
```
Error: Cannot access URL: Connection timeout
```
3. **Server Error**
```
Error: URL returned status code 404. Please check if the website is accessible.
```
4. **Network Issues**
```
Error: Network error: DNS resolution failed
```
### **Error Recovery**
- Original URL is preserved if update fails
- Clear error messages guide user to fix issues
- Option to test URL accessibility before updating
## 🔄 **Re-crawling After URL Update**
### **Automatic Re-crawl**
When updating URL with re-crawl option:
1. URL is validated and updated
2. Old scraped pages are deleted
3. New crawling begins automatically
4. Page count comparison is shown
### **Manual Re-crawl**
Click **"Re-crawl Now"** to:
1. Delete all existing pages
2. Scrape the current URL
3. Show before/after page counts
4. Update business status
### **Re-crawl Results**
```json
{
"success": true,
"message": "Re-crawled successfully! Found 15 pages (previously 8)",
"total_pages": 15,
"old_page_count": 8
}
```
## 🎯 **API Endpoints**
### **Update Business URL**
```
POST /scraping/{business_id}/update-url/
Content-Type: application/x-www-form-urlencoded
website_url=https://newdomain.com
```
**Response:**
```json
{
"success": true,
"message": "Website URL updated from https://old.com to https://new.com",
"old_url": "https://old.com",
"new_url": "https://new.com",
"business_id": 123
}
```
### **Re-crawl Business**
```
POST /scraping/{business_id}/recrawl/
X-CSRFToken: {token}
```
**Response:**
```json
{
"success": true,
"message": "Re-crawled successfully! Found 12 pages (previously 5)",
"total_pages": 12,
"old_page_count": 5
}
```
### **Edit Business (Full)**
```
GET/POST /scraping/{business_id}/edit/
```
## 🛡️ **Security & Validation**
### **Built-in Protections**
-**CSRF Protection** - All forms include CSRF tokens
-**URL Validation** - Prevents malicious URL injection
-**Access Control** - Only authorized users can edit
-**Data Rollback** - Failed updates don't corrupt data
### **Validation Rules**
```python
# URL must have proper scheme
if not parsed.scheme or not parsed.netloc:
raise ValidationError('Invalid URL format')
# Only allow HTTP/HTTPS
if parsed.scheme not in ['http', 'https']:
raise ValidationError('URL must start with http:// or https://')
# Test accessibility
response = requests.head(url, timeout=10)
if response.status_code >= 400:
raise ValidationError('URL not accessible')
```
## 📊 **Usage Examples**
### **Scenario 1: Company Changed Domain**
```
Old: https://oldcompany.com
New: https://newcompany.com
1. Go to Edit Business
2. Update URL to https://newcompany.com
3. Check "Re-crawl website if URL changes"
4. Click Update Business
→ Result: URL updated, 15 new pages scraped
```
### **Scenario 2: Wrong URL Entered Initially**
```
Wrong: https://exampl.com (typo)
Correct: https://example.com
1. Click "Update URL Only" in sidebar
2. Enter https://example.com
3. Click Update URL
→ Result: URL corrected, ready to re-crawl
```
### **Scenario 3: Website Structure Changed**
```
Same URL, but site was redesigned
1. Click "Re-crawl Now" button
2. Confirm deletion of old pages
3. Wait for re-crawling to complete
→ Result: Fresh content from redesigned site
```
## 🚀 **Best Practices**
1. **Always test URLs** before updating in production
2. **Backup data** before major URL changes
3. **Use re-crawl option** when URL structure changes significantly
4. **Monitor crawling status** to ensure completion
5. **Export data** before making changes as backup
---
Your URL update system is now **production-ready** with comprehensive validation, error handling, and user-friendly interfaces! 🎉