tsx81428 发表于 2024-11-20 06:06:39

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

https://i-blog.csdnimg.cn/blog_migrate/14f715d898b8a6bdd2d4664c25b2cac4.png

目录
​编辑
数据长期化(非数据库)
第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('.')
# 请求图片地址
    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 **********# https://i-blog.csdnimg.cn/blog_migrate/13b4edca1a2968a1c86f5a4ea8d520b3.png


多线程、多进程爬虫 

第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('.')
    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)) https://i-blog.csdnimg.cn/blog_migrate/c53e326e84345d7e4650127f94f0e46f.png

Scrapy爬虫底子


第1关:Scarpy安装与项目创建
任务描述

本关任务:借助Scrapy框架编写一个最根本的爬虫小程序,掌握Scrapy的底子理论和使用。
scrapy startproject HelloWorld
cd HelloWorld
scrapy genspider world www.baidu.com https://i-blog.csdnimg.cn/blog_migrate/5e13476b974bc19e296bdee1fb5b8205.png



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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 头歌答案--数据长期化(非数据库)