Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

这篇具有很好参考价值的文章主要介绍了Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
如果爬虫做完的话都会发现每个文件要么保存到csv或者是其他格式的文件中,这样做多少会有些麻烦,所以需要将这些内容保存起来方便自己管理和查看内容。

相对于flask而言Django有着相对成熟的一个后台管理系统配合上其他一些插件就可以做到即插即用的效果而不用自己再去花时间去做其他。
后台系统搭建好是这个样子。
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

本篇采用Django作为后台管理系统,将从零开始手把手搭建自己的爬虫后台。
源码已上传有需要可以直接下载

Django爬虫后台管理系统

1.Django搭建

先在cmd中给python安装好Django

pip3 install django

然后点击pychram点击New Project
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后点击Django
选择默认的python3.7版本即可,appname输入你自己的默认app名称即可创建默认的目录
全部处理好后点击create即可创建Django

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
创建好Django项目之后会出现默认的目录
目录结构就是
manage是项目入口指定配置文件路径
init是空文件,被当做包使用
url是配置项目url的文件,指引页面路径
wsgi是web服务器的入口

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
之后如果一开始没有创建应用名称那么就需要在pycharm的底部点击terminal终端上创建一个app应用名称
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
创建好之后如下
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后创建好应用后要在setting中检查有无安装成功

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后点击开始启动服务器

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
出现这个页面就代表成功
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

2.设计模型

Django中拥有ORM框架所以我们只要对模型进行设计后既可调用数据库中的数据显示到页面中
所以可以设计一张表结构:
爬虫信息表
表名:Search_sc
内容:content_sc
来源:url_sc
日期:time_sc

from django.db import models
class Search_sc(models.Model):
    content_sc = models.CharField(max_length=300)
    url_sc = models.CharField(max_length=300)
    time_sc = models.CharField(max_length=100)
    def __str__(self):
        return "%d" % self.pk


创建好模型之后进行数据迁移
打开terminal终端
python manage.py makemigrations
执行迁移命令
python manage.py migrate

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
这时候默认的Django数据库是sqlit3,只要在sqlit3数据库中出现当前表格就表示显示成功

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

3.后台管理

后台管理可以对数据和用户进行相应的管理,需要创建一个管理员

python manage.py createsuperuser
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

然后创建好用户之后用下面地址进行登录

http://127.0.0.1:8000/admin
用你之前创建好的用户名和密码进行登录即可

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后我们进入管理后台就是如下图所示

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
这时候没有看到我们的模型因为还没有注册需要再admin.py中进行注册一下

from django.contrib import admin
from .models import Search_sc
admin.site.register(Search_sc)

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后再次登录Django后台就可以看到这个页面

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

4.连接mysql数据库

上面数据建模已经完成下面就进行连接mysql数据库的操作,先创建一个数据库然后用navicat进行连接
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后修改settings.py文件
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',# 默认
        'NAME': 'school',# 连接的数据库
        'HOST': '127.0.0.1', # mysql的ip地址
        'PORT': 3306,  # mysql的端口
        'USER': 'root',  # mysql的用户名
        'PASSWORD': ''  # mysql的密码
    }

}

先安装pymysql,

pip3 install pymysql

由于更换了数据库所以init引擎也要进行相应更换在init中进行相应的修改

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统


import pymysql
 
 
pymysql.install_as_MySQLdb()

然后再进行数据库迁移

python manage.py makemigrations
python manage.py migrate

迁移成功之后在Navicat中就可以看到mysql中被迁移成功后的数据
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
这个就是我一开始创建的模型表
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

5.用simpleui装饰后台

由于目前来看我们这些后台管理系统并不好看,所以我们需要加装一些插件把后台系统变得好看一些,所以要添加simpleui插件。
先用pip安装插件


pip3 install django-simpleui

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
将simpleui添加到setting中

INSTALLED_APPS = [
	'simpleui',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'test1.apps.Test1Config',

]

# 更改默认语言为中文
LANGUAGE_CODE = 'zh-hans'
#修改时区
TIME_ZONE = 'Asia/Shanghai'
# 隐藏右侧SimpleUI广告链接和使用分析
 SIMPLEUI_HOME_INFO = False 
 SIMPLEUI_ANALYSIS = False 

修改后登录后台管理系统就会发现进行相应的变化
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

然后对后台的标题和名称进行修改在admin.py中进行修改

from django.contrib import admin
from .models import Search_sc
admin.site.register(Search_sc)
admin.site.site_header = '爬虫管理后台' 
admin.site.site_title = '爬虫管理后台'
admin.site.index_title = '爬虫管理后台'

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
侧边栏可通过apps.py进行修改

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

from django.apps import AppConfig


class Test1Config(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'test1'
    verbose_name = '爬虫信息管理'

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
由于models中显示是英文所以需要将models改变成中文使用verbos_name,对models.py进行修改

from django.db import models
class Search_sc(models.Model):
    content_sc = models.CharField(max_length=300)
    url_sc = models.CharField(max_length=300)
    time_sc = models.CharField(max_length=100)
    class Meta:
        verbose_name = "爬虫详细信息"
        verbose_name_plural = "爬虫详细信息"
    def __str__(self):
        return "%d" % self.pk

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

更多simpleui使用可参考这篇文章:
Django实战: 手把手教你配置Django SimpleUI打造美丽后台(多图)
全部修改后的样子比之前好看很多
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

6.selenium爬虫后存入数据库中

后台搭建好之后我们就需要使用selenium进行爬虫然后存入mysql数据库中再把数据展示到Django后台管理系统中

目前我的selenium已经配置好如果没有配置好的需要先去配置一下selenium我用的是最新的版本

如果不了解selenium可以去看这一篇文章
selenium用法详解【从入门到实战】【Python爬虫】【4万字】

import time
import pymysql
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from apscheduler.schedulers.blocking import BlockingScheduler
from selenium.webdriver import Chrome, ChromeOptions
conn = pymysql.connect(host='localhost',  # host属性
                       port=3306,  # 端口号
                       user='',  # 用户名
                       password='',  # 此处填登录数据库的密码
                       db='', # 数据库名
                       charset='utf8'
                       )

opt = ChromeOptions()            # 创建Chrome参数对象
opt.headless = True              # 把Chrome设置成可视化无界面模式,windows/Linux 皆可
# Chrome浏览器
driver = webdriver.Chrome()
driver.get("")#新闻网站
def index():
    # 设置等待5秒,避免爬虫时被封禁
    driver.implicitly_wait(5)
    # 找到外框的获取里面所有的li标签
    content = driver.find_element(By.XPATH,'/html/body/div[7]/div[1]/div[2]/ul/li[1]/span/a').text
    url = driver.find_element(By.XPATH,'/html/body/div[7]/div[1]/div[2]/ul/li[1]/span/a').get_attribute('href')
    time_cf=driver.find_element(By.XPATH, '/html/body/div[7]/div[1]/div[2]/ul/li[1]/span/span').text
    cursor = conn.cursor()
            # 插入数据,insert into 表(列名,列名,列名)values(值,值,值)这个值主要就是对应的你获取到的值
    sql = 'insert into test1_search_sc(content_sc,url_sc,time_sc) values(%s,%s,%s);'
            # 对获取到的数据进行排序如果有重复的则进行筛除
    data_list=[content,url,time_cf]

    list2 = sorted(list(set(data_list)), key=data_list.index)

    try:
             # 插入数据
        cursor.execute(sql,list2)
            # 连接数据
        conn.commit()
        print('插入数据成功')
    except Exception as e:
        print('插入数据失败')
        conn.rollback()
        time.sleep(5)
    conn.close()

if __name__ == "__main__":
        index()


然后进行爬虫就会看到数据已经存入数据库当中

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后进入我们的爬虫后台就会看到相应的数据在这里显示出来
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
点击可进行修改的操作,但是目前来看如果后期数据量多还需要一个上传和下载的功能

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

7.Django新增导入导出功能

需要安装Django-import-export

pip3 install django-import-export

然后在settings.py中注册一下

INSTALLED_APPS = [
'simpleui',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'test1.apps.Test1Config',
    'import_export',

]
#新增导入导出为TRUE
IMPORT_EXPORT_USE_TRANSACTIONS = True

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
然后在admin.py中新增功能,并让表中继承插件

from django.contrib import admin
from .models import Search_sc
from import_export.admin import ImportExportModelAdmin
#将models中数据表字段名注册到admin中
class Search_sc_up(ImportExportModelAdmin):
    list_display = ['content_sc','url_sc','time_sc']

# 在admin注册进去这些表
admin.site.register(Search_sc,Search_sc_up)
admin.site.site_header = '爬虫管理后台'
admin.site.site_title = '爬虫管理后台'
admin.site.index_title = '爬虫管理后台'

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
全部做好后重启Django服务器,既可看到新增了导入和导出的功能

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统
可根据以下这些格式进行导入导出
Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统

Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统文章来源地址https://www.toymoban.com/news/detail-480655.html

到了这里,关于Python爬虫进阶(1),Django+Selenium+Mysql+SimpleUI,从零开始搭建自己的爬虫后台管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始学习:如何使用Selenium和Python进行自动化测试?

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年04月23日
    浏览(77)
  • 用python从零开始做一个最简单的小说爬虫带GUI界面(3/3)

    目录 上一章内容 前言 出现的一些问题 requests包爬取小说的不便之处 利用aiohttp包来异步爬取小说 介绍 代码 main.py  test_1.py test_3.py 代码大致讲解 注意 系列总结 用python从零开始做一个最简单的小说爬虫带GUI界面(2/3)_木木em哈哈的博客-CSDN博客 前一章博客我们讲了怎么通过

    2024年02月11日
    浏览(41)
  • 用python从零开始做一个最简单的小说爬虫带GUI界面(2/3)

    目录 前一章博客 前言 主函数的代码实现 逐行代码解析 获取链接 获取标题 获取网页源代码 获取各个文章的链接 函数的代码 导入库文件 获取文章的标题 获取文章的源代码 提取文章目录的各个文章的链接 总代码 下一章内容 用python从零开始做一个最简单的小说爬虫带GUI界面

    2024年02月11日
    浏览(43)
  • 用python从零开始做一个最简单的小说爬虫带GUI界面(1/3)

    目录 下一章内容 PyQt5的配置  设置软件的快捷启动方式 1.        用于设计界面的程序 2.        将Qt Designer设计出来的ui文件转化为py文件 3.        可以把py文件打包成可执行的exe文件 4.        将ico图片放在qrc文件中,再将qrc文件转换成py文件,用于小工具的图

    2024年02月12日
    浏览(50)
  • 从零开始学习Web自动化测试:如何使用Selenium和Python提高效率?

    目录 引言: 一、了解Web自动化测试的基本概念 二、选择Web自动化测试工具 三、学习Web自动化测试的技能 四、实践Web自动化测试 五、总结 随着互联网的不断发展,Web自动化测试越来越受到关注。Web自动化测试可以帮助我们轻松地检查网站的功能和性能,提高软件开发的效率

    2024年02月01日
    浏览(50)
  • 【Python】【进阶篇】二十四、Python爬虫的Selenium的基本用法

    Selenium 作为一款 Web 自动化测试框架,提供了诸多操作浏览器的方法,本节对其中的常用方法做详细介绍。 Selenium 提供了 8 种定位单个节点的方法,如下所示: 定位节点方法 方法 | 说明 ---|--- find_element_by_id() | 通过 id 属性值定位 find_element_by_name() | 通过 name 属性值定位 find

    2024年02月04日
    浏览(82)
  • 【Web项目实战】从零开始学习Web自动化测试:用Python和Selenium实现网站登录功能

    B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db 目录 1.环境搭建

    2024年02月06日
    浏览(67)
  • 【从零开始学Django篇001】从创建一个新的Django项目开始

    👑 作 者 主 页 :👉 CSDN 丨 博客园 🏆 学 习 交 流: 👉 在下周周ovoの社区 💎 从零开始 学Django 系列专栏: 👉Django系列专栏 ​ 在这个专栏,大概会从零开始了解到大部分的Django知识点。比如说 Django模板语言,路由系统,视图系统,中间件,AJAX,浏览器的同源策略及使

    2024年02月08日
    浏览(71)
  • python爬虫从0到1 -selenium的基本使用(1),非常适合收藏的Python进阶重难点笔记

    5.根据标签名字来获取对象 button = browser.find_element_by_tag_name(‘input’) 6.通过当前页面中的链接文本来获取对象 button = browser.find_element_by_link_text(‘新闻’) (五)selenium访问元素信息 ==================================================================================== 例: 1.获取元素属性的属性值

    2024年04月09日
    浏览(50)
  • 基于Django爬虫项目网络表情包爬虫展示系统设计与实现(Pycharm+Python+Mysql)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。 项目配有对应开发文档、

    2024年03月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包