在Django框架中进行爬虫并存储数据,通常需要以下几个步骤:
pip install django scrapy
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
配置Scrapy:在myapp
目录下创建一个名为spiders
的文件夹,用于存放爬虫代码。然后,在settings.py
文件中添加scrapy
到INSTALLED_APPS
列表中。
创建爬虫:在spiders
文件夹中创建一个新的爬虫类,继承自scrapy.Spider
。例如,创建一个名为myspider.py
的文件,内容如下:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['https://example.com']
def parse(self, response):
# 提取数据的逻辑
item = {
'title': response.css('h1.title::text').get(),
'description': response.css('p.description::text').get(),
}
yield item
配置数据存储:在settings.py
文件中配置数据存储方式。例如,如果你想将数据存储到Django的数据库中,需要在INSTALLED_APPS
列表中添加相应的应用,并配置数据库连接信息。如果你想将数据存储到文件或CSV文件中,可以使用Scrapy的FEED_EXPORT_ENCODING
和FEED_FORMAT
设置。
运行爬虫:在项目根目录下运行以下命令启动爬虫:
python manage.py crawl myspider
myapp/models.py
文件中定义一个模型,用于存储爬取到的数据。然后,在爬虫的parse
方法中,将提取到的数据保存到Django模型实例中。例如:from django.db import models
from myapp.models import MyModel
class MySpider(scrapy.Spider):
# ...
def parse(self, response):
item = {
'title': response.css('h1.title::text').get(),
'description': response.css('p.description::text').get(),
}
my_model_instance = MyModel(**item)
my_model_instance.save()
yield item
这样,爬取到的数据就会被存储到Django的数据库中。你可以根据需要调整模型结构和数据存储方式。