基于爬虫--Python复习篇(函数)

函数的定义:

def f1( ):    #定义函数

#位置参数

def  sum(a,b):   #为形式参数

        c=a+b

        print(c)

sum(3,4)#位置参数要求一一对应

当位置不能做到一一对应,我们要用关键字传参方法。

函数返回值:

return

def sum(a,b):
    c = a+b
    return c
a = sum(2,3)
print(a)

返回值不会显示,需要用变量接收返回值,并打印输出变量。

局部变量与全局变量

#局部变量在局部中定义的

特点:作用域范围是函数内部

文件的打开和关闭

fp = open('text.txt','w')
fp.write('hello')
#文件夹不可自动创建需要自行创建,但是文件可以
fp.close()
#这种写入的方式如果再次书写将清空原来的书写内容

#可以用a来追加 (在原有的基础上进行追加)

#读数据
fp = open('text.txt','r')
content = fp.read() 
content = fp.readline()
content = fp.readines()
#可以进行行读 返回的为列表

爬虫豆瓣第一页网页:

分为三部:

1.请求对象的定制

2.获取响应的数据

3.将获取的数据下载到本地,通过open方法。在open方法中我们要注意编码方式,其默认编码方式为gbk。

在network里 我们找到top里面有排行榜数据

在Handers里面有我们需要的url地址和 对象定制需要的User-Agent.

#urllib_ajax 请求
#get请求 获取豆瓣电影的第一页并且保存起来
import urllib.request
url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100:90&action=&start=0&limit=20'
headers ={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
#请求对象的定制
request = urllib.request.Request(url = url,headers=headers)
#获取响应的数据
reponse = urllib.request.urlopen(request)
content = reponse.read().decode('utf8')
print(content)
#将数据下载到本地
#open默认gbk编码 如果我们想在open中存放中文我们需要指定编码格式utf-8
# fp = open('cinma.json','w',encoding='utf-8')
# fp.write(content)
#crtl + ale+ l 使阅读更加便捷
#写法2
with open('douban.json','w',encoding='utf-8') as fp1:
    fp1.write(content)
#两种写法呈现的是一致的

在这里有个好的方法处理数据:ctrl+alt +l

在Python中,encode()decode()是用于处理字符串和字节之间的转换的方法。

encode()方法用于将字符串转换为字节:

 

python复制代码

s = 'Hello, world!'
bytes = s.encode('utf-8') # 使用utf-8编码将字符串转换为字节
print(bytes)

在上面的例子中,s.encode('utf-8')将字符串s使用UTF-8编码转换为字节。

decode()方法用于将字节转换为字符串:

 

python复制代码

bytes = b'Hello, world!'
s = bytes.decode('utf-8') # 使用utf-8编码将字节转换为字符串
print(s)

在上面的例子中,bytes.decode('utf-8')将字节bytes使用UTF-8编码转换为字符串。

需要注意的是,在encode和decode时需要指定相同的编码方式,例如都使用'utf-8',否则可能会出现解码错误。

另外,Python 3中的str类型和bytes类型是不同的,str类型是unicode字符集,而bytes类型是二进制数据。因此,需要使用encode和decode方法在它们之间进行转换。在Python 2中,只有str类型,因此不需要使用这些方法进行转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值