Django爬虫是基于Web框架Django的一种爬虫技术,可以用于爬取网站上的各种数据,如文本、图像、音频、视频等,并将其存入数据库中。本文将介绍如何使用Django爬虫将爬取到的数据存入MySQL数据库。
首先,需要安装Django以及MySQL驱动程序。在命令行中输入以下指令:
pip install djangopip install pymysql
接下来,需要创建一个Django项目。在命令行中输入以下指令:
django-admin startproject projectname
其中,projectname是项目的名称,可自定义。然后,在settings.py文件中配置MySQL数据库信息:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'database_name','USER': 'user_name','PASSWORD': 'password','HOST': 'localhost','PORT': '3306',}}
其中,database_name是数据库的名称,user_name和password是访问数据库的用户名和密码,localhost是数据库的主机名,3306是数据库的端口号。
接下来,创建一个Django应用。在命令行中输入以下指令:
python manage.py startapp appname
其中,appname是应用的名称,可自定义。然后,在appname/下创建一个models.py文件,定义要存入数据库的数据模型:
from django.db import modelsclass Data(models.Model):title = models.CharField(max_length=200)content = models.TextField()def __str__(self):return self.title
上述代码定义了一个Data模型,包含标题和内容两个字段,类型分别为CharField和TextField。
接下来,在appname/下创建一个spider.py文件,编写爬虫程序:
import requestsfrom bs4 import BeautifulSoupfrom appname.models import Datadef spider():base_url = "https://www.example.com/"r = requests.get(base_url)soup = BeautifulSoup(r.content, "html.parser")data_list = []for item in soup.find_all("div", class_="item"):title = item.find("h2", class_="title").textcontent = item.find("p").textdata_list.append(Data(title=title, content=content))Data.objects.bulk_create(data_list)
上述代码从https://www.example.com/网站爬取数据,然后将数据存入数据库中。
最后,在项目的根目录下,运行以下命令:
python manage.py makemigrationspython manage.py migratepython manage.py shell
运行以上命令后,会进入Django的交互式命令行界面。在其中运行以下指令:
from appname.spider import spiderspider()
这样,爬虫程序就会运行并将数据存入MySQL数据库中。