头歌答案--数据长期化(非数据库)

打印 上一主题 下一主题

主题 984|帖子 984|积分 2954



目录
​编辑
数据长期化(非数据库)
第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.         
  28. #********** 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.    
  16.     name = img_src.split('/')[-1].split('.')[0]
  17.     img_url = "http://127.0.0.1:8080" + img_src
  18.     img = requests.get(img_url)
  19.     dir_path = 'step1/images'
  20.     if not os.path.exists(dir_path):
  21.         os.makedirs(dir_path)
  22.     img_path = dir_path + '/' + name + '.jpg'  # 图片的最终存储路径
  23.     print(img_url, name + '.jpg', '开始下载。。。')
  24.     thread = threading.currentThread()
  25.     process = psutil.Process(os.getpid())
  26.     print("线程ID:%s, 进程ID:%s"
  27.           % (thread.ident, process.pid))
  28.     #********** Begin *********#
  29.     """保存图片"""
  30.     with open(img_path, 'wb')as file:
  31.         file.write(img.content)
  32.     #********** End *********#
  33.     finisTime = time.time() - start_time
  34.     print(name + ".jpg 用时为:" + str(finisTime) + " second")
  35. def parsePage():
  36.     url = "http://127.0.0.1:8080/imgs/"
  37.     response = requests.get(url=url, headers=header)
  38.     html_content = response.text
  39.     #********** Begin *********#
  40.     """解析网页"""
  41.     html = etree.HTML(html_content)
  42.     item_list = html.xpath("//div[@class='box']/div/a/img/@src")
  43.     print(item_list)
  44.     s_time = time.time()
  45.    
  46.     #********** End *********#
  47.     """非线程操作"""
  48.     # for item in item_list:
  49.     #     downimg(item)
  50.     #********** Begin *********#
  51.     """线程操作方式"""
  52.     thread = []
  53.     for item in item_list:
  54.         
  55.         thread.append(threading.Thread(target=downimg, args=(item, )))
  56.     for t in thread:
  57.         t.start()
  58.     for t in thread:
  59.         t.join()
  60.     #********** End *********#
  61.     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()
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表