爬虫和django结合开发

本文介绍如何使用Python爬虫抓取小说内容并存储到MySQL数据库中,再利用Django框架实现小说网站的搭建过程。涵盖爬虫开发、数据库设计及Django视图配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            Python爬虫与django框架开发小说网站

第三方包:mysqldb,django1.10.8

 

Python版本2.7

 

先写python爬虫爬取全书网所有小说的书名,章节,内容等到mysql数据库中,然后再将python爬虫爬取的小说内容在django框架中显示。

 

建库novel,再建表

 

Novelcopy(models.Model):
    novelid = models.AutoField(primary_key=True)
    sort = models.CharField(max_length=100, blank=True, null=True)
    novelname = models.CharField(max_length=100, blank=True, null=True)
    novelintroduction = models.TextField(blank=True, null=True)
    toppicture = models.CharField(max_length=50, blank=True, null=True)
    author = models.CharField(max_length=50, blank=True, null=True)
    novelimge = models.CharField(max_length=255, blank=True, null=True)

 

 

Chaptercopy(models.Model):
    chapterid = models.AutoField(primary_key=True)
    novelid = models.ForeignKey('Novelcopy', models.DO_NOTHING, db_column='novelid', blank=True, null=True)  #外键与'Novelcopy'中的novelid关联
    toppicture = models.CharField(max_length=100, blank=True, null=True)
    content = models.TextField(blank=True, null=True)
    chaptername = models.CharField(max_length=100, blank=True, null=True)
    novelname = models.CharField(max_length=200, blank=True, null=True)

 

1. 先写python爬虫爬取全书网所有小说的书名,章节,内容等到mysql数据库中。

import urllib2
import re
import MySQLdb
class Sql(object):
    ''' 连接数据库'''
    
conn = MySQLdb.connect(
        #如果发现运行错误与编码有关,可将注释全部删除再运行
        # hots="127.0.0.1",
        
port=3306,       #端口名
        
user='root',    #用户名
        
passwd='123456',  #密码
        
db='novel',       #数据库名
        
charset='utf8')    #选择数据库编码格式

 

 

#将小说的类别,介绍,名字,作者,连载信息,小说封面照片存入AddNovelcopy表中
def AddNovelcopy(self,sort,novelintroduction,novelname,author,toppicture,novelimge):
    cur = self.conn.cursor()
    cur.execute("insert into novelcopy(sort,novelintroduction,novelname,author,toppicture,novelimge) values('%s' ,'%s','%s','%s','%s','%s')"%(sort,novelintroduction,novelname,author,toppicture,novelimge))
    lastrowid = cur.lastrowid
    cur.close()
    self.conn.commit( )
    return lastrowid

 

 

#将小说id,连载信息,内容,章节名字,小说名字存入AddChaptername表中
def AddChaptername(self,novelid,toppicture,content,chaptername,novelname):
    cur = self.conn.cursor()

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值