效果图
代码:
#coding:utf-8
# Filename: print_movies_name.py
# 获取电影天堂最新电影资源名称
import re
import requests
user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1)'
headers={"User-Agent": user_agent}
# 定义函数
def get_name():
url = 'https://www.dytt8.net/'
data = requests.get(url, headers = headers).content
# 把 data 转码
data1 = data.decode('gbk','ignore').encode('utf-8')
names = re.findall("最新电影下载</a>]<a href=.+?《(.+?)》", data1, re.S)
return names # 返回电影名列表 names
# 把函数的返回值赋值给变量 names
names = get_name()
for name in names:
print('《' + name + '》')
知识点
函数
函数就是把一段代码写在一起,完成某项特定任务。给这段代码起个名,之后调用这个函数名,就可以运行这段代码。
函数的好处是一次编写可反复使用。
函数的基本形式如下:
def 函数名(参数):
函数体
Python 定义函数用 def
语句,依次写出函数名、括号、括号中的参数和冒号 :
,然后,在缩进块中编写函数体。函数可以没有参数。示例:
# 没参数的函数
def say_hello():
print 'Hello World!'
# 有参数的函数
def say_hello2(name):
print('hello ' + name)
函数的返回值
多数函数运行之后会返回一个结果,这个结果就是返回值。函数的返回值用 return 语句返回。
# 定义函数,函数名为 get_data
def get_data():
url = 'https://www.dytt8.net/'
data = requests.get(url, headers = headers).content
# 返回网页数据 data
return data
函数的调用
函数调用遵循先定义后调用的原则。
调用方法是在代码中写出 函数名+括号+参数
。示例:
# 运行函数get_name()
get_name()
# 运行函数get_name(),把运行结果赋值给 names
names = get_name()
字符串的编码
如果在 Python2 中使用中文,就需要在代码首行或第2行写上
#coding:utf-8
这行注释是为了告诉Python解释器,按照UTF-8编码格式读取源代码。
我们还需要将 requests.get
得到的数据转换为 utf-8
编码格式
Python2 使用unicode类型作为编码的基础类型。因此在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码格式的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码格式。
decode encode
str ---------> unicode --------->str
data1 = data.decode('gbk','ignore').encode('utf-8')
# 字符集 GBK 兼容 GB2312
# 先将gbk型转换为 unicode,再将 nnicode 转换为 utf-8
# 'ignore' 表示忽略有异常的编码,仅显示有效的编码
转码的时候一定要先搞明白,字符串是什么编码格式。查看网页编码方式:
查看网页源代码,charset=
后面的就是。
这是教程的第五篇了,是不是感觉啰嗦且无趣。
刚开始我们以详细为主,后面会加快速度,并增加有趣的东西。
教程目录:
0.《简介及准备》
1.《爬单个图片》
2.《下载一组网页上的图片》
3.《输出一个网页上的文字》
4.《获取电影天堂最新电影名称》
5.《糗事百科爬虫》
20181130
网友评论