Python爬取数据并进行数据CRUD的Web可视化项目

news2024/12/23 10:11:22

项目内容简介

爬取网站https://book.douban.com/top250上面的Top250数据,然后将数据保存到Mysql数据库中,最后这些数据记录以Web的方式进行展示,并实现对这些数据记录的CRUD(增删改查)!

项目实现简介

  1. 对豆瓣网站的爬虫的实现。

    见项目中的爬取豆瓣Top250脚本(beautifulSoup).py文件即可。

    这个Python脚本的主要功能是爬取豆瓣图书Top250的信息并将其保存到MySQL数据库中。具体实现过程如下:

    1. 引入需要的库:requests库用于发送http请求,BeautifulSoup库用于解析html页面,pymysql库用于将数据保存到MySQL数据库中,threading库用于实现多线程。
    2. 定义get_detail_urls()函数,用于获取每本书的详情页面的url链接。
    3. 定义parse_detail_url()函数,用于解析每本书的详情页面并将其保存到MySQL数据库中。
    4. 定义main()函数,用于爬取多页页面的内容,并利用多线程来解析数据。
    5. 在main()函数中,首先定义需要爬取的页面链接,然后遍历每个页面链接,获取每个页面中每本书的详情页面链接,再利用多线程来解析每本书的详情页面并将其保存到MySQL数据库中。
    6. 最后,在程序的末尾,创建多个线程来执行main()函数,以提高爬取速度。

    总体来说,这段代码实现了一个简单的爬虫,并将爬取到的数据保存到了MySQL数据库中。

  2. 数据的WEB展示及数据的CRUD的实现。

    见项目中的web program(by flask)文件夹即可。

    这个文件夹是一个基于 Flask 和 MySQL 数据库的 Web 应用程序,用于展示和管理书籍信息。它实现了以下功能:

    • 在首页展示所有书籍的信息,并支持数据的分页查询和展示。
    • 提供查询功能,根据书名和作者名查询书籍信息。
    • 提供添加、修改和删除书籍信息的功能。

    具体过程如下:

    1. 导入所需的 Python 库和模块,包括 Flask、flask_paginate、pymysql 等。
    2. 初始化 Flask 应用程序和 MySQL 数据库连接。
    3. 定义首页路由函数 index(),根据请求方法(GET 或 POST)查询书籍信息并进行分页处理,最后将结果传递给 HTML 模板进行渲染。
    4. 定义添加书籍信息的路由函数 addBook(),返回一个包含表单的 HTML 模板。
    5. 定义修改书籍信息的路由函数 changeBook(),根据书籍 ID 查询数据库中对应的书籍信息,并将结果传递给 HTML 模板进行渲染。
    6. 定义更新书籍信息的路由函数 updateBook(),根据请求参数更新数据库中对应的书籍信息,并将结果重定向到首页。
    7. 定义插入书籍信息的路由函数 insertBook(),根据表单参数插入新的书籍信息到数据库中,并将结果重定向到首页。
    8. 定义删除书籍信息的路由函数 deleteBook(),根据书籍 ID 删除数据库中对应的书籍信息,并将结果重定向到首页。
    9. 启动 Flask 应用程序并监听请求,最后关闭游标对象和数据库连接。

项目的环境

  1. 项目需要的软件环境如下:
  • 安装Python环境并配置环境变量。

  • 安装Mysql数据库环境并配置环境变量。

  • navicat软件,用于连接mysql数据库。

  1. 项目用到的Python第三方库如下:

    [可用pip包管理工具进行安装]

  • requests
  • bs4
  • pymysql
  • threading
  • flask
  • flask_paginate
  1. 项目可能需要的技术背景:

    python + 爬虫 + flask + html + css + js + linux + json + mysql等。

使用指南

以下步骤基于Windows系统环境:

  1. 准备并安装好项目所需的环境。

  2. Clone本项目的所有内容到本地。

  3. 打开navicat软件,连接本地的mysql数据库,在其中先建立好一个名叫mydb数据库,再打开sql files文件夹,运行其中的1.create_douban_table.sql文件,从而在mydb数据库中建立名叫douban的数据表。

  4. 打开crawler script文件夹,运行其中的 爬取豆瓣Top250脚本(beautifulSoup).py爬虫程序,即可将豆瓣TOP250的书籍数据保存到本地mysql的mydb数据库的douban数据表中。

    备注:如果此爬虫在运行过程中出现被封ip等情况,导致不能顺利爬取数据。此时也可以直接打开sql files文件及,利用navicat软件运行其中的2.create_douban_data(2023-06-23爬取).sql文件,从而直接将我爬取的数据直接存储入douban数据表中,从而方便后续的步骤实现】

  5. 打开web program(by flask)文件夹,运行其中的server.py服务器程序,即可启动相应的WEB可视化CRUD数据处理程序。

  6. 最后利用浏览器打开本地网址,即127.0.0.1:5000即可。

示例和演示

静态展示

本项目的部分效果图如下:


  1. 爬取的数据(2023-06-23日爬取):

在这里插入图片描述

  1. 前端效果:

在这里插入图片描述

  1. 数据查找效果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QxTMAmfJ-1687626928578)(README.assets/%E6%95%B0%E6%8D%AE%E6%9F%A5%E6%89%BE%E6%95%88%E6%9E%9C.png)]

  2. 数据分页效果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vF2hTbbX-1687626928579)(README.assets/%E6%95%B0%E6%8D%AE%E5%88%86%E9%A1%B5%E6%95%88%E6%9E%9C.png)]

  3. 数据删除效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qCpX9CVX-1687626928580)(README.assets/%E6%95%B0%E6%8D%AE%E5%88%A0%E9%99%A4%E6%95%88%E6%9E%9C.png)]

  1. 数据添加效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7QGT2apq-1687626928581)(README.assets/%E6%95%B0%E6%8D%AE%E6%B7%BB%E5%8A%A0%E6%95%88%E6%9E%9C.png)]

  1. 数据修改效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vl2Qjyh5-1687626928582)(README.assets/%E6%95%B0%E6%8D%AE%E4%BF%AE%E6%94%B9%E6%95%88%E6%9E%9C.png)]

创作不易!!欢迎关注个人公众号!!获取更多知识内容!!
发送关键词: douban到公众号即可获取项目源码!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/681595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下MySQL的安装与使用

文章目录 安装前说明Linux系统及工具的准备查看是否安装过MySQLMySQL的卸载 MySQL的Linux版安装下载MySQL指定版本CentOS7下检查MySQL依赖CentOS7下MySQL安装过程 查看MySQL版本服务的初始化启动MySQL,查看状态查看MySQL服务是否自启动 MySQL登录设置远程登录 安装前…

【计算机组成原理】输入输出系统

目录 一、外部设备概述 二、输入输出接口 三、主机与外设交换信息的方式 四、中断系统 五、中断请求 六、中断响应 七、中断服务 一、外部设备概述 外部设备在计算机系统中的作用: 人机对话的重要设备(交互)完成数据媒体变换的设别&…

chatgpt赋能python:Python等待一秒-程序员必知的等待操作

Python等待一秒 - 程序员必知的等待操作 时间是宝贵的资源,你可能会需要让你的Python程序等待一段时间才能继续执行。在这篇文章中,我们将学习如何使用Python等待一秒,包括为什么需要等待,以及在Python中如何等待。 为什么需要等…

前端web入门-CSS-day07

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 定位 相对定位 绝对定位 定位居中 固定定位 堆叠层级 z-index 定位-总结 高级技巧 CSS 精灵 字…

QT(一) 安装 QT(二)GUI程序设计基础

第一章 : Qt 安装 下载地址安装 打开 cmd 运行镜像 : qt-unified-windows-x64-4.6.0-online.exe --mirror https://mirrors.aliyun.com/qt Hello 因为是qmake 所以是.proCtrl R 直接运行 第二章 GUI程序设计基础 main文件 *.ui : 有UI设计器自动生成…

操作系统02-OS结构

目录 一、概述 二、内容 三、总结 一、概述 操作系统以服务的形式向程序和用户提供执行程序的基本服务,包括用户界面、程序执行、IO操作、文件系统操作、通讯、错误监测等。 二、内容 2.1 OS服务和接口 1 操作系统服务 2 操作系统程序接口:系统调…

阿里架构师分享分布式架构笔记文档:Nginx+Redis+ZK+Kafka+MQ等

Nginx Nginx 是一款非常优秀的开源软件,工作需要,研究了很久一段时间的 Nginx 源码,在研究学习的过程中收益颇多。作为高性能服务器的代表,为了追求极致的高性能,在许多方面,Nginx 的源码实现都可以称得上…

Reqable HTTP一站式开发+调试工具(小黄鸟作者另一力作、小黄鸟完美替代品)

本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删!Reqable HTTP一站式开发+调试工具(小黄鸟作者另一力作、小黄鸟替代品) 环境 win10pixel4Android13概览 …

JS将PDF转图片,pdfjs的使用

Hi I’m Shendi 最近做转换工具,需要将pdf转图片,这里记录下来 JS将PDF转图片,pdfjs的使用 简介 A general-purpose, web standards-based platform for parsing and rendering PDFs. 一个通用的、基于web标准的平台,用于解析和…

word公式mathtype公式

行间公式: 直接点“有编号” 内联公式: 直接点“内联” 交叉引用: 插入引用,双击编号 行内公式大小不统一,公式的代码可能上漂 解决方案:法一:切换Tex,再次切换过来。 法二&…

ElasticSearch的核心概念简单描述

我正在参加「掘金启航计划」 ES核心概念 ES是面向文档,下面表格是和关系型数据库的对比,一切都是JSON 关系数据库(Mysql)ES数据库(database)索引(indices) 和数据库一样表(tables)types 慢慢会被弃用 7.0已经过时 8.0会彻底废弃行(rows)documents (数据)文档字段(columns)fi…

简单图论+二分搜索:环境治理

题目描述 LQ 国拥有 n 个城市, 从 0 到 n−1 编号, 这 n 个城市两两之间都有且仅有 一条双向道路连接, 这意味着任意两个城市之间都是可达的。每条道路都有一 个属性 D, 表示这条道路的灰尘度。当从一个城市 A 前往另一个城市 B 时, 可 能存在多条路线, 每条路线的灰尘度定义为…

前端项目规范化:手把手教你使用prettier和pre-commit(git hook或者husky)优化规范项目代码

如何在提交代码之前,进行代码格式化检查,保证每个成员的代码都是同一个风格呢? 最简单的两种方式: 使用 prettier git pre-commit 使用 prettier husky(原理和第一种一模一样哦) 名词简介 git hooks 下图为git hooks的官方…

FcaNet: Frequency Channel Attention Networks论文总结和代码详解

论文:https://arxiv.org/abs/2012.11879 中文版:FcaNet: Frequency Channel Attention Networks 源码:https://github.com/cfzd/FcaNet或https://gitee.com/yasuo_hao/FcaNet 目录 一、论文背景和出发点 二、创新点 三、离散余弦变换&…

FastDFS-图灵

1. 分布式文件系统应用场景 互联网海量非结构化苏剧的存储需求 电商网站:海量商品图片视频网站:海量视频文件网盘:海量文件社交网站:海量图片 2.FastDFS介绍 https://github.com/happyfish100/fastdfs 2.1 简介 FastDFS是一个…

(转载)支持向量机(support vector machine, SVM)的分类(matlab实现)

支持向量机(support vector machine,SVM)是一种新的机器学习方法,其基础是Vapnik 创建的统计学习理论(statistical learning theory,STL)。统计学习理论采用结构风险最小化(structural risk minimization,SRM)准则,在最小化样本点误差的同时,…

Redis进阶 - Redis主从

原文首更地址,阅读效果更佳! Redis进阶 - Redis主从 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-advance-master-slave.html 搭建主从架构 单节点 Redis 的并发能力是有上限的,要进一步提高 Redis 的并发能力&am…

CSS3技巧35:滚动的条纹背景

感觉好久没更博客了,虽然我经常登录看下粉丝数。O(∩_∩)O 端午节摆烂,休息了下,恢复下元气。 节后开始满负荷工作。 ---------------------------正文开始------------------------------------------ 做进度条的时候,有时候会…

Tomcat【部署zrlog】

目录 目录 1、单节点部署zrlog【192.168.200.121】 1.1、 创建数据库、远程登录用户 1.2、 浏览器访问 2、 LB集群-构建-部署zrlog-NFS共享存储 2.1、 安装、配置LB【192.168.200.120】 2.2、 NFS-资源共享【192.168.200.125】 3、配置tomcat访问日志中记录真实IP 1、单…

[元带你学: eMMC协议详解 20] emmc的命令(cmd)、响应(resp)详解

依JEDEC eMMC 5.1及经验辛苦整理,付费内容,禁止转载。 所在专栏 《元带你学: eMMC协议详解》 内容摘要 全文 8100字, 主要内容 对eMMC的command进行详细介绍,主要包含如下内容: (1) emmc命令有哪些 (2) 使用不同命…