如何使用Django将网络爬虫抓取的内容插入MySQL数据库
Django爬虫数据存入MySQL实现方法
前置准备
首先确认你已经执行了Django模型的迁移命令,确保SomeModel对应的表已经在MySQL中创建完成:
python manage.py makemigrations python manage.py migrate
步骤1:在爬虫文件中初始化Django环境
因为你的爬虫是单独的文件,要调用Django ORM需要先加载项目配置,在爬虫代码最开头添加如下代码:
import os import django # 替换为你自己的Django项目settings路径,格式是「项目名.settings」 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project_name.settings') django.setup() # 导入你定义的模型,替换为实际的app名称 from 你的app名.models import SomeModel
步骤2:修改爬虫逻辑插入数据
处理爬取到的p标签内容,调用ORM方法存入数据库,有两种常用实现方式:
单条插入(适合数据量小的场景)
在你现有爬虫代码的find_by_class之后添加:
for p in find_by_class: # 获取p标签的纯文本内容,也可根据需求保留标签结构 content = p.get_text(strip=True) # 过滤空内容避免存入无效数据 if content: SomeModel.objects.create(description=content)
批量插入(适合数据量大的场景,性能更高)
insert_list = [] for p in find_by_class: content = p.get_text(strip=True) if content: insert_list.append(SomeModel(description=content)) # 一次提交所有数据 SomeModel.objects.bulk_create(insert_list)
注意事项
- 替换代码中的
your_project_name为你实际的Django项目名称,你的app名为定义SomeModel的app名称 - 如果爬取的内容长度超过
TextField设置的1000字符限制,可以适当调大max_length参数,或者直接去掉max_length限制(MySQL的text类型默认支持最多65535字符) - 运行爬虫时直接执行爬虫文件即可,不需要通过Django启动服务运行。
内容的提问来源于stack exchange,提问作者Kyogi
相关产品推荐
相关产品推荐

