头歌答案--数据持久化(非数据库)

news2025/1/10 20:50:45

目录

​编辑

数据持久化(非数据库)

第1关:数据持久化(非数据库)

任务描述

多线程、多进程爬虫 

第1关:多线程、多进程爬虫

任务描述

Scrapy爬虫基础

任务描述

MySQL数据库编程

第1关:python数据库编程之创建数据库

任务描述

第2关:python数据库编程之创建数据表

任务描述

第3关:python数据库编程之插入数据

任务描述

第4关:python数据库编程之查询数据

任务描述

第5关:python数据库编程之修改数据

任务描述

第6关:python数据库编程之删除数据

任务描述


 

数据持久化(非数据库)

第1关:数据持久化(非数据库)

任务描述

本关任务:将网页上的图片数据持久化(保存)。

import os
import requests
from bs4 import BeautifulSoup
from lxml import etree
url = 'http://127.0.0.1:8080/imgs/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36'
}
response = requests.get(url, headers=headers)
#********** Begin **********#
# 解析网页
html = etree.HTML(response.text)
img_srcs = html.xpath("//div[@class='box']/div/a/img/@src")
for img_src in img_srcs:
    name = img_src.split('/')[-1].split('.')[0]
# 请求图片地址
    img_url = "http://127.0.0.1:8080" + img_src
    img = requests.get(img_url)
# 判断保存图片的文件夹是否存在
    dir_path = 'step1/images'
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)
    img_path = dir_path + '/' + name + '.jpg'  # 图片的最终存储路径
# 保存图片
    with open(img_path, 'wb')as file:
        file.write(img.content)
        
#********** End **********#

多线程、多进程爬虫 

第1关:多线程、多进程爬虫

任务描述

本关任务:使用多线程将网页上的图片数据下载并保存。

import requests
from lxml import etree
import time
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
from multiprocessing import Pool
import os
import threading
import psutil
# URL伪装
header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
}
def downimg(img_src):
    start_time = time.time()
    
    name = img_src.split('/')[-1].split('.')[0]
    img_url = "http://127.0.0.1:8080" + img_src
    img = requests.get(img_url)
    dir_path = 'step1/images'
    if not os.path.exists(dir_path):
        os.makedirs(dir_path)
    img_path = dir_path + '/' + name + '.jpg'  # 图片的最终存储路径
    print(img_url, name + '.jpg', '开始下载。。。')
    thread = threading.currentThread()
    process = psutil.Process(os.getpid())
    print("线程ID:%s, 进程ID:%s"
          % (thread.ident, process.pid))
    #********** Begin *********#
    """保存图片"""
    with open(img_path, 'wb')as file:
        file.write(img.content)
    #********** End *********#
    finisTime = time.time() - start_time
    print(name + ".jpg 用时为:" + str(finisTime) + " second")
def parsePage():
    url = "http://127.0.0.1:8080/imgs/"
    response = requests.get(url=url, headers=header)
    html_content = response.text
    #********** Begin *********#
    """解析网页"""
    html = etree.HTML(html_content)
    item_list = html.xpath("//div[@class='box']/div/a/img/@src")
    print(item_list)
    s_time = time.time()
    
    #********** End *********#
    """非线程操作"""
    # for item in item_list:
    #     downimg(item)
    #********** Begin *********#
    """线程操作方式"""
    thread = []
    for item in item_list:
        
        thread.append(threading.Thread(target=downimg, args=(item, )))
    for t in thread:
        t.start()
    for t in thread:
        t.join()
    #********** End *********#
    print('总耗时: %s' % (time.time() - s_time))

Scrapy爬虫基础

第1关:Scarpy安装与项目创建

任务描述

本关任务:借助Scrapy框架编写一个最基本的爬虫小程序,掌握Scrapy的基础理论和使用。

scrapy startproject HelloWorld
cd HelloWorld
scrapy genspider world www.baidu.com

MySQL数据库编程

第1关:python数据库编程之创建数据库

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 创建数据库。

#!/usr/bin/python

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

 

import pymysql

import mysql.connector

 

# 连接mysql,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    conn = mysql.connector.connect(

    # mysql服务器主机地址

    host='127.0.0.1',

    # mysql服务器连接端口

    port=3306,

    # 用户名

    user='root',

    # 数据库名(若不选此参数则不指定具体数据库连接,我们可以使用use database来选择其它数据库)

    # db='db_name',

    # 用户密码

    passwd='123123',

    # 编码格式

    # charset='utf8'

    )

    # 使用cursor()函数创建一个游标对象

    # cursor = conn.cursor()

    return conn

 

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("CREATE DATABASE  my_db")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第2关:python数据库编程之创建数据表

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 创建数据表。

#!/usr/bin/python

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

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

 

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute('''CREATE TABLE user

    (id   INT(16) AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(32) NOT NULL,

    password varchar(32))

    ENGINE = MyISAM''')

 

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第3关:python数据库编程之插入数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 插入数据。

#!/usr/bin/python

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

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("insert into user (username, password) values('teble', 'teble')")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第4关:python数据库编程之查询数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 从数据库中查询数据。

#!/usr/bin/python

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

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

 

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("select id, username, password from user ORDER BY id DESC")

    for data in cursor.fetchall():

        print(data)

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第5关:python数据库编程之修改数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 从数据库中修改数据。

#!/usr/bin/python

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

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("update user set username = 'root',password='root' where id = '1'")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

第6关:python数据库编程之删除数据

任务描述

在现在的软件、web 开发中,越来越离不开数据库的支持,MySQL 是现在最流行的关系型数据库管理系统(RDBMS - Relational Database Management System),在 WEB 开发中,MySQL 是最好的 RDBMS 应用软件之一。在本教程中,会让大家快速掌握 python 使用 MySQL 的相关知识,并轻松使用 MySQL 数据库。

本关任务:使用 pymysql 从数据库中删除数据。

#!/usr/bin/python

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

 

import pymysql


 

# 连接mysql,连接数据库my_db,创建连接并返回连接对象

def connect():

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    # 创建数据库连接

    conn = pymysql.connect(

        # mysql服务器主机地址

        host='127.0.0.1',

        # mysql服务器连接端口

        port=3306,

        # 用户名

        user='root',

        # 数据库名

        db='my_db',

        # 用户密码

        passwd='123123',

        # 编码格式

        charset='utf8'

    )

    return conn

    # *********  End  ********* #


 

def test():

    # 创建连接,并且返回连接对象

    conn = connect()

    # 创建游标对象

    cursor = conn.cursor()

    # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格

    # ********* Begin ********* #

    cursor.execute("delete from user where id = '2'")

    # *********  End  ********* #

    # 关闭游标

    cursor.close()

    # 关闭连接

    conn.close()

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

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

相关文章

如何删除英文键盘ENG

1.打开设置:时间和语言2.选择语言,查看首选列表,如果有多种语言,删除其他的语言就可以,如果只有中文,需要点击添加语言 3.选择安装的语言 这个时候点击英语,在选项中就可以看到它的默认键盘&…

盘点双11!阿里妈妈助这些品牌短视频赢增长!

刚刚!一年一度的双11落下帷幕,很多新变化值得回味。 尽管天气在变凉,但市场出现了逐渐回暖的迹象。在此背景下,大量商家特别关心如何在双11打一场漂亮的胜仗。 卖方如何行动,关键在于买方的变化。在阿里妈妈发布的《…

小H靶场学习笔记:DC-2

DC-2 Created: November 10, 2023 3:01 PM Tags: WordPress, git提权, rbash逃逸 Owner: 只会摸鱼 靶场过程 信息收集 扫描存活主机,找到靶机ip:192.168.199.131(本机是192.168.199.129) 扫描端口开放协议 发现有80端口和77…

通过 Elasticsearch 和 Go 使用混合搜索进行地鼠狩猎

作者:CARLY RICHMOND,LAURENT SAINT-FLIX 就像动物和编程语言一样,搜索也经历了不同实践的演变,很难在其中做出选择。 在本系列的最后一篇博客中,Carly Richmond 和 Laurent Saint-Flix 将关键字搜索和向量搜索结合起…

第23章(下)_索引原理剖析

文章目录 索引实现索引存储B树为什么 MySQL InnoDB 选择 B 树作为索引的数据结构?B 树层高问题关于自增id最左匹配原则覆盖索引索引下推innodb体系结构Buffer poolchange buffer 总结 索引实现 索引存储 innodb 由段、区、页组成。段分为数据段、索引段、回滚段等…

手把手带你创建一个自己的GPTs

大家好,我是五竹。 最近GPT又进行了大升级,这一下又甩了国内AI几条街,具体更新了哪些内容之前的一篇文章中其实已经说过了:ChatGPT 王炸升级!更强版 GPT-4 上线! 其中最重要的一点就是支持自定义GPT&…

【博士每天一篇文献-算法】Imposing Connectome-Derived Topology on an Echo State Network

阅读时间:2023-11-5 1 介绍 年份:2022 作者:Jacob Morra, Mark Daley 西部大学 期刊:2022 International Joint Conference on Neural Networks (IJCNN) 引用量:3 研究了果蝇连接图的拓扑结构对混沌时间序列预测中回…

IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】

IP-guard Webserver view 远程命令执行漏洞【2023最新漏洞】 一、漏洞描述二、漏洞影响三、漏洞危害四、FOFA语句五、漏洞复现1、手动复现yaml pocburp发包 2、自动化复现小龙POC检测工具下载地址 免责声明:请勿利用文章内的相关技术从事非法测试,由于传…

代码随想录算法训练营第18天|513. 找树左下角的值 112. 路径总和 113.路径总和ii 106.从中序与后序遍历序列构造二叉树

JAVA代码编写 513. 找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7提示: 二叉树的节点个…

Vue.js 学习总结(3)—— vite 打包图片时报错 Rollup failed to resolve import...

问题 图片依赖: Vite 打包前端项目时图片无法引入,报如下错误: ERROR [vite]: Rollup failed to resolve import "%7BlibeiDanmuKongmu%7D" from "D:/java/workspace/jeecgboot-vue3/src/views/funeral/tombInfo/area.vue?…

《数据结构、算法与应用C++语言描述》-队列的应用-工厂仿真

工厂仿真 完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_19Factory simulation/ 问题描述 一个工厂有m台机器。工厂的每项任务都需要若干道工序才能完成。每台机器都执行一道工序,不同的机器执行不同的工序。一台机器一…

13年测试老鸟,稳定性测试要点+性能监控关键指标分析(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、稳定性测试的要…

FlinkSQL聚合函数(Aggregate Function)详解

使用场景: 聚合函数即 UDAF,常⽤于进多条数据,出⼀条数据的场景。 上图展示了⼀个 聚合函数的例⼦ 以及 聚合函数包含的重要⽅法。 案例场景: 关于饮料的表,有三个字段,分别是 id、name、price&#xff0…

录制GIF图,动态图

软件下载链接: https://www.cockos.com/licecap/ 参考链接: https://chat.xutongbao.top/

<C++> stack queue模拟实现

目录 前言 一、stack的使用 1. 接口说明 2. 例题 二、模拟实现stack 三、queue的使用 四、模拟实现queue 五、deque 总结 前言 LIFO stack 1. 栈是一种容器适配器,专门设计用于在后进先出上下文(后进先出)中运行,其中元素仅从容器…

Linux之基本指令操作

1、whoami whoami:查看当前账号是谁 2、who who:查看当前我的系统当中有哪些用户,当前有哪些人登录了我的机器 3、 pwd pwd:查看我当前所处的目录,就好比Windows下的路径 4、ls ls:查看当前目录下的文件信…

搭建Docker

一、概念 云服务器大家肯定不陌生了,相比较传统物理服务器来说他的价格,个性化的配置服务,节省了很多的运维成本,越来越多的企业以及个人开发者更加的青睐于云服务器。有了属于自己的服务器就可以部署搭建自己个人网站了&#xf…

【博士每天一篇文献-模型】A mechanistic model of connector hubs, modularity and cognition

阅读时间:2023-11-10 1 介绍 年份:2018 作者:Maxwell A. Bertolero, B. T. Thomas Yeo 期刊: nature human behaviour 引用量:180 2 创新点 作者提出了一个机制模型,解释了连接中枢的功能以及其对认知表…

深度学习1【吴恩达】

视频链接:1.5 关于这门课_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1FT4y1E74V?p5&spm_id_frompageDriver&vd_source3b6cdacf9e8cb3171856fe2c07acf498 视频中吴恩达老师所有的话语收录: 机器学习初学者-AI入门的宝典 (ai-start.c…

知识蒸馏概述及开源项目推荐

文章目录 1.介绍2.知识2.1 基于响应的知识(response-based)2.2 基于特征的知识(feature-based)2.3 基于关系的知识(relation-based) 3.蒸馏机制3.1 离线蒸馏3.2 在线蒸馏3.3 自蒸馏 4.教师-学生架构5.蒸馏算法5.1 对抗性蒸馏(Adversarial Dis…