使用Django开发爬虫系统
为了创建一个简单的Django爬虫系统,你需要定义模型、视图和URLs。以下是一个基本的例子:
首先,安装Django:
pip install django
创建项目和应用:
django-admin startproject myproject
cd myproject
python manage.py startapp crawler
在crawler/models.py
中定义爬虫任务模型:
from django.db import models
class CrawlTask(models.Model):
url = models.URLField(unique=True)
status_code = models.IntegerField(null=True)
response_data = models.TextField(null=True)
在crawler/views.py
中创建爬虫视图:
import requests
from .models import CrawlTask
from django.http import JsonResponse
def crawl(request):
if request.method == 'POST':
url = request.POST.get('url')
task = CrawlTask.objects.create(url=url)
response = requests.get(url)
task.status_code = response.status_code
task.response_data = response.text
task.save()
return JsonResponse({'status': 'success', 'task_id': task.id})
def check_task(request, task_id):
task = CrawlTask.objects.filter(pk=task_id).first()
if task:
return JsonResponse({
'status_code': task.status_code,
'response_data': task.response_data
})
else:
return JsonResponse({'error': 'Task not found'}, status=404)
在myproject/urls.py
中包含爬虫的URLs:
from django.urls import path, include
from crawler import views
urlpatterns = [
path('crawl/', views.crawl, name='crawl'),
path('task/<int:task_id>/', views.check_task, name='check_task'),
]
这个简单的爬虫系统允许用户提交URL以抓取内容,并查看任务状态。实际的爬虫系统需要更复杂的逻辑,例如任务调度、异步处理和身份验证处理,这些可以根据需求逐步添加。
评论已关闭