qian奇岸微信二维码 如您需要快速报价 请加技术经理微信 服务热线
13501992972
"MENU"
首页 > 开发知识 > 正文

content` text NOT NULL COMMENT

奇岸开发
ahqian.com
08/27/2022
wechat

无需加好友免费技术支持

环境建设表明:

抓取数据信息

要做一个小说网址,具体内容是非常必要的。最先,我们将要小说集《星星变》爬上去数据库。

创建一个简单的数据库表:

CREATE TABLE `novel` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 自增主键,

`title` varchar(100) NOT NULL COMMENT "文章标题",

`content` text NOT NULL COMMENT "具体内容",

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

组装数据库推动和连接池:

# 数据库推动

pip install pymysql

# 数据库连接池

pip install DBUtils

代码完成:

# -*- coding: UTF-8 -*-

# 导入requests库

import requests

# 导入文件实际操作库

import codecs

from bs4 import BeautifulSoup

import sys

import mysql_DBUtils

from mysql_DBUtils import MyPymysqlPool

import importlib

importlib.reload(sys)

# 特定要求仿真模拟chrome浏览器

headers = {

"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

server = ""

# 星辰变详细地址

book = ""

# 界定DB

mysql = MyPymysqlPool("dbMysql")

# 获得章节具体内容

def get_contents(chapter):

req = requests.get(url=chapter)

html = req.content

html_doc = str(html, "gbk")

bf = BeautifulSoup(html_doc, "html.parser")

texts = bf.find_all("div", id="content")

# 获得div标签id属性content的具体内容 xa0 是不间断地空白符

content = texts[0].text.replace("xa0" * 4, "

")

return content

# 载入数据库

def write_db(chapter, content):

sql = "INSERT INTO novel (title, content) VALUES(%(title)s, %(content)s);"

param = {"title": chapter, "content": content}

mysql.insert(sql, param)

# 主方式

def main():

res = requests.get(book, headers=headers)

html = res.content

html_doc = str(html, "gbk")

# 应用内置的html.parser分析

soup = BeautifulSoup(html_doc, "html.parser")

# 获得全部章节

a = soup.find("div", id="list").find_all("a")

print总章节数: %d " % len(a))

for each in a:

try:

chapter = server each.get("href")

content = get_contents(chapter)

chapter = each.string

write_db(chapter, content)

except Exception as e:

print(e)

mysql.dispose()

if __name__ == "__main__":

main()

详细大量代码:

私聊007可得到意外惊喜豪礼哦!

创建项目

# 组装Web架构

pip install Django

# 创建一个项目

python django-admin.py startproject itstyle

# 转换文件目录

cd itstyle

# 创建App

python manage.py startapp novel

一般有好几个项目app, 自然通用性的app可用于好几个项目,随后启动服务:

# 默认端口是8000

python manage.py runserver

假如提醒端口被占用,可以用别的端口号:

python manage.py runserver 8001

项目构造

最后代码如下所示:

│ manage.py

├─novel

│ │ settings.py # 基本配备

│ │ urls.py # URL投射

│ │ wsgi.py

│ │ __init__.py

│ │

├─templates # 有关网页页面

│ novel.html # 章节

│ novel_list.html # 小说集主页

├─utils

│ │ dbMysqlConfig.cnf # 数据库配置参数

│ │ encoder.py # 编号类

│ │ mysql_DBUtils.py # 数据库连接池

└─view

│ index.py # 后台管理业务流程

关键点备注名称

RESTful 设计风格

控制板 urls.py

from django.conf.urls import url

from django.urls import path

from view import index

urlpatterns = [

# 《星辰变》主页List

path("", index.main), # new

# 章节网页页面 正则匹配

path("chapter//", index.chapter), # new

]

代码完成

from django.http import HttpResponse

from django.shortcuts import render

import utils.mysql_DBUtils

from utils.mysql_DBUtils import MyPymysqlPool

from utils.encoder import MyEncoder

import json

mysql = MyPymysqlPool("dbMysql")

# 章节目录《星辰变》

def main(request):

# 这儿读10一篇文章,提升分页查询

sql = "SELECT id,title FROM novel LIMIT 10;"

result = mysql.getAll(sql)

# 汉语转换格式

result = json.dumps(result, cls=MyEncoder, ensure_ascii=False, indent=4)

result = json.loads(result)

context = {"novel_list": result}

return render(request, "novel_list.html", context)

"""

浏览单章

这里 novel_id 相匹配 urls.py 里的

可浏览:

"""

def chapter(request, novel_id):

sql = "SELECT title,content FROM novel where id = %(id)s;"

param = {"id": novel_id}

result = mysql.getOne(sql, param)

result["title"] = result["title"].decode("utf-8")

result["content"] = result["content"].decode("utf-8")

context = {"novel": result}

return render(request, "novel.html", context)

列表展示

根据后面回到统计数据显示在前台接待。在这儿你不难想象它Java中的Struts2标识或是JSTL自然,标识有点Vue的意思:

{% for novel in novel_list %}

  • {{ novel.title }}
  • {% endfor %}

    总结

    到现在为止,一个简单的Web项目原形已完成。自然,有很多地方必须提升。假如项目进行,应当有3个w快到手了!路还长,还必须努力!

    热度483

    了解更多content` text NOT NULL COMMENT欢迎联系奇岸开发客服。

    奇岸开发可定制企业官网小程序、小程序商城、餐饮外卖小程序、预约小程序、多门店小程序、分销小程序及个人小程序。

    微信二维码

    微信长按识别或扫一扫,无需加好友直接咨询,企业网站开发、网站托管维护、企业管理系统开发、微信小程序制作、域名主机、网站备案、网站改版等提供专业技术解答。

    精彩推荐

    猜你喜欢