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


    目录

    ​编辑

    数据持久化(非数据库)

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

    任务描述

    多线程、多进程爬虫 

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

    任务描述

    Scrapy爬虫基础

    任务描述

    MySQL数据库编程

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

    任务描述

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

    任务描述

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

    任务描述

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

    任务描述

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

    任务描述

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

    任务描述


     

    数据持久化(非数据库)

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

    任务描述

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

    1. import os
    2. import requests
    3. from bs4 import BeautifulSoup
    4. from lxml import etree
    5. url = 'http://127.0.0.1:8080/imgs/'
    6. headers = {
    7. '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'
    8. }
    9. response = requests.get(url, headers=headers)
    10. #********** Begin **********#
    11. # 解析网页
    12. html = etree.HTML(response.text)
    13. img_srcs = html.xpath("//div[@class='box']/div/a/img/@src")
    14. for img_src in img_srcs:
    15. name = img_src.split('/')[-1].split('.')[0]
    16. # 请求图片地址
    17. img_url = "http://127.0.0.1:8080" + img_src
    18. img = requests.get(img_url)
    19. # 判断保存图片的文件夹是否存在
    20. dir_path = 'step1/images'
    21. if not os.path.exists(dir_path):
    22. os.makedirs(dir_path)
    23. img_path = dir_path + '/' + name + '.jpg' # 图片的最终存储路径
    24. # 保存图片
    25. with open(img_path, 'wb')as file:
    26. file.write(img.content)
    27. #********** End **********#

    多线程、多进程爬虫 

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

    任务描述

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

    1. import requests
    2. from lxml import etree
    3. import time
    4. from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor
    5. from multiprocessing import Pool
    6. import os
    7. import threading
    8. import psutil
    9. # URL伪装
    10. header = {
    11. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36",
    12. }
    13. def downimg(img_src):
    14. start_time = time.time()
    15. name = img_src.split('/')[-1].split('.')[0]
    16. img_url = "http://127.0.0.1:8080" + img_src
    17. img = requests.get(img_url)
    18. dir_path = 'step1/images'
    19. if not os.path.exists(dir_path):
    20. os.makedirs(dir_path)
    21. img_path = dir_path + '/' + name + '.jpg' # 图片的最终存储路径
    22. print(img_url, name + '.jpg', '开始下载。。。')
    23. thread = threading.currentThread()
    24. process = psutil.Process(os.getpid())
    25. print("线程ID:%s, 进程ID:%s"
    26. % (thread.ident, process.pid))
    27. #********** Begin *********#
    28. """保存图片"""
    29. with open(img_path, 'wb')as file:
    30. file.write(img.content)
    31. #********** End *********#
    32. finisTime = time.time() - start_time
    33. print(name + ".jpg 用时为:" + str(finisTime) + " second")
    34. def parsePage():
    35. url = "http://127.0.0.1:8080/imgs/"
    36. response = requests.get(url=url, headers=header)
    37. html_content = response.text
    38. #********** Begin *********#
    39. """解析网页"""
    40. html = etree.HTML(html_content)
    41. item_list = html.xpath("//div[@class='box']/div/a/img/@src")
    42. print(item_list)
    43. s_time = time.time()
    44. #********** End *********#
    45. """非线程操作"""
    46. # for item in item_list:
    47. # downimg(item)
    48. #********** Begin *********#
    49. """线程操作方式"""
    50. thread = []
    51. for item in item_list:
    52. thread.append(threading.Thread(target=downimg, args=(item, )))
    53. for t in thread:
    54. t.start()
    55. for t in thread:
    56. t.join()
    57. #********** End *********#
    58. print('总耗时: %s' % (time.time() - s_time))

    Scrapy爬虫基础

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

    任务描述

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

    1. scrapy startproject HelloWorld
    2. cd HelloWorld
    3. scrapy genspider world www.baidu.com

    MySQL数据库编程

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

    任务描述

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

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

    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. import pymysql
    4. import mysql.connector
    5. # 连接mysql,创建连接并返回连接对象
    6. def connect():
    7. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    8. # ********* Begin ********* #
    9. conn = mysql.connector.connect(
    10. # mysql服务器主机地址
    11. host='127.0.0.1',
    12. # mysql服务器连接端口
    13. port=3306,
    14. # 用户名
    15. user='root',
    16. # 数据库名(若不选此参数则不指定具体数据库连接,我们可以使用use database来选择其它数据库)
    17. # db='db_name',
    18. # 用户密码
    19. passwd='123123',
    20. # 编码格式
    21. # charset='utf8'
    22. )
    23. # 使用cursor()函数创建一个游标对象
    24. # cursor = conn.cursor()
    25. return conn
    26. # ********* End ********* #
    27. def test():
    28. # 创建连接,并且返回连接对象
    29. conn = connect()
    30. # 创建游标对象
    31. cursor = conn.cursor()
    32. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    33. # ********* Begin ********* #
    34. cursor.execute("CREATE DATABASE my_db")
    35. # ********* End ********* #
    36. # 关闭游标
    37. cursor.close()
    38. # 关闭连接
    39. conn.close()

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

    任务描述

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

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

    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. import pymysql
    4. # 连接mysql,连接数据库my_db,创建连接并返回连接对象
    5. def connect():
    6. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    7. # ********* Begin ********* #
    8. # 创建数据库连接
    9. conn = pymysql.connect(
    10. # mysql服务器主机地址
    11. host='127.0.0.1',
    12. # mysql服务器连接端口
    13. port=3306,
    14. # 用户名
    15. user='root',
    16. # 数据库名
    17. db='my_db',
    18. # 用户密码
    19. passwd='123123',
    20. # 编码格式
    21. charset='utf8'
    22. )
    23. return conn
    24. # ********* End ********* #
    25. def test():
    26. # 创建连接,并且返回连接对象
    27. conn = connect()
    28. # 创建游标对象
    29. cursor = conn.cursor()
    30. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    31. # ********* Begin ********* #
    32. cursor.execute('''CREATE TABLE user
    33. (id INT(16) AUTO_INCREMENT PRIMARY KEY,
    34. username VARCHAR(32) NOT NULL,
    35. password varchar(32))
    36. ENGINE = MyISAM''')
    37. # ********* End ********* #
    38. # 关闭游标
    39. cursor.close()
    40. # 关闭连接
    41. conn.close()

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

    任务描述

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

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

    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. import pymysql
    4. # 连接mysql,连接数据库my_db,创建连接并返回连接对象
    5. def connect():
    6. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    7. # ********* Begin ********* #
    8. # 创建数据库连接
    9. conn = pymysql.connect(
    10. # mysql服务器主机地址
    11. host='127.0.0.1',
    12. # mysql服务器连接端口
    13. port=3306,
    14. # 用户名
    15. user='root',
    16. # 数据库名
    17. db='my_db',
    18. # 用户密码
    19. passwd='123123',
    20. # 编码格式
    21. charset='utf8'
    22. )
    23. return conn
    24. # ********* End ********* #
    25. def test():
    26. # 创建连接,并且返回连接对象
    27. conn = connect()
    28. # 创建游标对象
    29. cursor = conn.cursor()
    30. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    31. # ********* Begin ********* #
    32. cursor.execute("insert into user (username, password) values('teble', 'teble')")
    33. # ********* End ********* #
    34. # 关闭游标
    35. cursor.close()
    36. # 关闭连接
    37. conn.close()

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

    任务描述

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

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

    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. import pymysql
    4. # 连接mysql,连接数据库my_db,创建连接并返回连接对象
    5. def connect():
    6. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    7. # ********* Begin ********* #
    8. # 创建数据库连接
    9. conn = pymysql.connect(
    10. # mysql服务器主机地址
    11. host='127.0.0.1',
    12. # mysql服务器连接端口
    13. port=3306,
    14. # 用户名
    15. user='root',
    16. # 数据库名
    17. db='my_db',
    18. # 用户密码
    19. passwd='123123',
    20. # 编码格式
    21. charset='utf8'
    22. )
    23. return conn
    24. # ********* End ********* #
    25. def test():
    26. # 创建连接,并且返回连接对象
    27. conn = connect()
    28. # 创建游标对象
    29. cursor = conn.cursor()
    30. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    31. # ********* Begin ********* #
    32. cursor.execute("select id, username, password from user ORDER BY id DESC")
    33. for data in cursor.fetchall():
    34. print(data)
    35. # ********* End ********* #
    36. # 关闭游标
    37. cursor.close()
    38. # 关闭连接
    39. conn.close()

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

    任务描述

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

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

    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. import pymysql
    4. # 连接mysql,连接数据库my_db,创建连接并返回连接对象
    5. def connect():
    6. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    7. # ********* Begin ********* #
    8. # 创建数据库连接
    9. conn = pymysql.connect(
    10. # mysql服务器主机地址
    11. host='127.0.0.1',
    12. # mysql服务器连接端口
    13. port=3306,
    14. # 用户名
    15. user='root',
    16. # 数据库名
    17. db='my_db',
    18. # 用户密码
    19. passwd='123123',
    20. # 编码格式
    21. charset='utf8'
    22. )
    23. return conn
    24. # ********* End ********* #
    25. def test():
    26. # 创建连接,并且返回连接对象
    27. conn = connect()
    28. # 创建游标对象
    29. cursor = conn.cursor()
    30. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    31. # ********* Begin ********* #
    32. cursor.execute("update user set username = 'root',password='root' where id = '1'")
    33. # ********* End ********* #
    34. # 关闭游标
    35. cursor.close()
    36. # 关闭连接
    37. conn.close()

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

    任务描述

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

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

    1. #!/usr/bin/python
    2. # -*- coding: UTF-8 -*-
    3. import pymysql
    4. # 连接mysql,连接数据库my_db,创建连接并返回连接对象
    5. def connect():
    6. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    7. # ********* Begin ********* #
    8. # 创建数据库连接
    9. conn = pymysql.connect(
    10. # mysql服务器主机地址
    11. host='127.0.0.1',
    12. # mysql服务器连接端口
    13. port=3306,
    14. # 用户名
    15. user='root',
    16. # 数据库名
    17. db='my_db',
    18. # 用户密码
    19. passwd='123123',
    20. # 编码格式
    21. charset='utf8'
    22. )
    23. return conn
    24. # ********* End ********* #
    25. def test():
    26. # 创建连接,并且返回连接对象
    27. conn = connect()
    28. # 创建游标对象
    29. cursor = conn.cursor()
    30. # 请在这里补充代码,完成本关任务,注意缩进格式为4个空格
    31. # ********* Begin ********* #
    32. cursor.execute("delete from user where id = '2'")
    33. # ********* End ********* #
    34. # 关闭游标
    35. cursor.close()
    36. # 关闭连接
    37. conn.close()

  • 相关阅读:
    .NET开源、跨平台的本地日记APP - SwashbucklerDiary
    Python tkinter用iconphoto方法修改窗口标题的图片
    opencv 空域变换
    开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败
    豆包MarsCode Agent 登顶 SWE-bench Lite 评测集
    智乃酱的cube(线段树维护)
    trie树(二)进阶
    Gitlab服务器配置LDAP指导
    编程内功心法「底层原理系列」 回归与本质,让本文带你认识什么是计算机软件系统
    R语言—数据输入
  • 原文地址:https://blog.csdn.net/m0_62476845/article/details/134358495