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


    目录

    ​编辑

    数据持久化(非数据库)

    第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()

  • 相关阅读:
    AB实验:科学归因与增长的利器
    浅谈大数据算法
    java计算机毕业设计html5健身房信息管理系统源码+mysql数据库+系统+lw文档+部署
    6763个gb2312汉字笔画分析
    T-SNE最简单的示例,自制非抄袭
    LRU缓存替换策略及C#实现
    Redis 键(key)相关操作和常用命令
    php截取网址/参数作为的短网址的实现方案
    使用HandlerInterceptor 中注入其他service时为null分析及解决
    前端实现批量下载并打包成ZIP文件
  • 原文地址:https://blog.csdn.net/m0_62476845/article/details/134358495