Day 3作业

作业

爬一个图片

import requests
res = requests.get('http://www.xiaohuar.com/d/file/20190607/cc9f2c32f17057412aec5e3bfff768ea.jpg')

print(res.content)

with open('校花网.jpg','wb')as f:
    f.write(res.content)

结果截图

函数的剩余部分讲解

'''
  函数的三种定义方式

'''

#无参函数
#不需要接收外部传入的参数
#def foo():
#     print('from foo..')
# foo()

#有参函数
#需要接受外部传入的参数
def login(user,pwd):
    print(user,pwd)

#传参多一或少一不可
login('tank','123')
#login('tank'# ,'123',111)
#login('tank')#少,报错



#比较两数大小
def max2(x,y):

    if(x > y):

            print(x)
    else:

            print(y)

max2(10,20)
#空函数
#遇到一些比较难实现的功能,会导致暂时无法继续编写代码。
#所以一般在生产开发中,都会将所有功能实现
def func():
    pass #pass代表什么都不做

'''
函数返回值
    在调用函数时,需要接收函数体内部产生的结果,则return返回值。
'''

def max2(x,y):

    if(x > y):

            return x
    else:

            return y

res = max2(10,20)
print(res)

'''
函数对象
    指的是函数名指向的内存地址。
'''
def fun():
    pass
#print(func)

#func()

def func2():
    pass
#把函数对象,传入字典中
dict1 = {
    '1':func,
    '2':func2
}
choice = input('请输入功能编号:').strip()

#若用户选择函数对象对应的key值,则调用该函数
if choice in dict1:
    dict1[choice]()#dict1['1']

'''
函数嵌套:
    嵌套定义
        在函数内定义函数

'''
#函数嵌套定义
def func1():

     print('func1...')

     def func2():
        print('func2...')


        def func3():
            print('func3...')

            return func3
     return func2
#通过函数内部的函数值,调用函数
func2 = func1()
func3 = func2()
func3()


def func1():
    print('func1...')

    def func2():
        print('func2...')

        def func3():
            print('func3...')

            #...
        func3()
    func2()
func1()

'''
函数的名称空间
python解释器自带的:内置名称空间
自定义的py文件内,顶着最左边定义的:全局名称空间
函数内部定义的:局部名称空间


'''
#name = 'tank'

def func1():
    #name = 'tank'
    print()


    def func2():

        print('func2...')

#print(name,'全局打印’)

func1()

以下是模块与包的内容

#import 模块名
import B

#form B import a
#导入B模块中a的文件
#会自动执行a文件中的代码

from B import a

#__name__:B.a
#a

以下是内置模块的内容

'''
常用模块(内置模块)
time
json
os
sys
'''

#time
import time #导入time模块
#获取时间戳
print(time.time())

#等待2秒
time.sleep(2)

print(time.time())


#os
import os
#判断tank.txt文件是否存在
print(os.path.exists('tank.txt'))#True
print(os.path.exists('tank1.txt'))#False
print(os.path.exists(r'C:\Program Files\JetBrains\PycharmProjects\untitled\Day 3\tank.txt'))#True

#获取当前文件的根目录
print(os.path.dirname(__file__)) #C:\Program Files\JetBrains\PycharmProjects\untitled\Day 3

#sys
import sys
#获取python在环境变量中的文件路径
print(sys.path)
 #把项目的根目录添加到环境变量中
sys.path.append(os.path.dirname(__file__))
print(sys.path)


# json
import json
user_info = {
    'name':'tank',
    'pwd':'123'
}

#dumps:序列化
#1.把字典转化成json数据
#2.再把json数据转成字符串类型

res = json.dumps(user_info)
print(res)
print(type(res))

with open('user.json','wt',encoding='utf-8')as f:
    f.write(res)


#loads:反序列化
#json.loads()
#1.把json文件数据读到内存中
with open('user.json','r',encoding='utf-8')as f:
    #读取得到的是字符串
    res = f.read()
    #print(type(res))
    #loads把json格式的字符串转换成dict类型
    user_dict = json.loads(res)
    print(user_dict)#{'name':'tank','pwd':'123'}
    print(type(user_dict))#<class'dict'>






#dump
user_info={
    'name':'tank',
    'pwd':'123'
}
with open('user_info.json','w',encoding='utf-8')as f:
    res = f.read()

#load
with open('user_info.json','r',encoding='utf-8')as f:
    # res = f.read()
    #user_dict = json.loads(res)
    #print(user_dict)

    #load: 自动触发f.read()
    user_dict = json.load(f)
    print(user_dict)

以下为爬虫基础

'''

http协议
    请求ur1:https://www.baidu.com/

    请求方式:
        GET

    请求头:
        cookie:可能需要关注(从而跳过用户名的认证)
        User-Agent:用来证明你是浏览器
            注意:去浏览器request headers中查找
            Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
        Host: www.baidu.com

'''

#requests模块使用

import requests
response = requests.get(url='https://www.baidu.com/')
response.encoding='utf-8'
print(response)#<Response [200]>
#返回响应状态码
print(response.status_code)#200
#返回响应文本
#print(response.text)

print(type(response.text))#<class'str'>

with open('baidu.html','w',encoding='utf-8')as f:
    f.write(response.text)


#爬取梨视频(视频和图片均用此方法,不需要用utf-8,因为都为二字流)
import  requests
res = requests.get('https://video.pearvideo.com/mp4/adshort/20190613/cont-1565846-14013215_adpkg-ad_hd.mp4')

print(res.content)

with open('视频.MP4','wb')as f:
    f.write(res.content)

感想:

       今天第一次真正接触了爬虫,在以前一点也不清楚这是什么,然后这次的生产实习是一个契机,让我开始接触python,前几天都在学习python的一些基础语法,今天下午tank老师带我们学习了简单的网站爬取以及图片和视频的爬取,,自己晚上做作业时自己也尝试了一次,成功了真的很喜悦,希望明天可以学习如何去爬一个网站,期待!

转载于:https://www.cnblogs.com/-zcj/p/11018705.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值