一页有10个电影,一页存一个文件
'''
抓取猫眼网Top100榜
'''
from urllib.request import urlopen
url = 'https://maoyan.com/board/4?offset=0'
'''
https://maoyan.com/board/4?offset=10
https://maoyan.com/board/4?offset=30
...
https://maoyan.com/board/4?offset=90
'''
# 获取一个页面:从0开始到9结束,共10个页面
def get_one_page(index):
url = 'https://maoyan.com/board/4?offset={}'.format(index*10)
# url = 'https://maoyan.com/board/4?offset=%d'%(index*10)
'''
字符串的格式化处理:
1.
{} 占位符
使用字符串的format方式格式化字符串
2.
%
'''
response = urlopen(url)
# 解码输出页面源代码
return response.read().decode()
# 保存数据
def save_one_page(index, html):
# 将数据保存到文件中
# 文件名:maoyan/top100_page_index.html
# 因为从0开始的所以需要+1;
# 文件存放在maoyan文件夹下,转义字符
file_name = 'maoyan\\top100_page_{}.html'.format(index + 1)
# 打开一个文件,以写的方式
'''
打开方式:
r:只读(以字符串的方式)
w:只写(以字符串的方式)
a:追加,写的一种(以字符串的方式)
rb:只读(以二进制的方式)
wb:只写(以二进制的方式)
ab:追加(以二进制的方式)
r+:可读可写
w+:可写可读
a+:可追加可读
'''
# 1.
# file = open(file_name, 'w', encoding='utf-8')
#
# file.write(html)
#
# # 打开文件使用后必须关闭
# file.close()
# 2.
# 只打开,不需手动关闭
with open(file_name, 'w', encoding='utf-8') as file:
file.write(html)
# __name__为内置变量
# 当执行的是当前文件(模块,一个文件是一个模块)时,__name == '__main__'
# 当执行的不是当前文件(当前文件被其他文件引用时),__name__ == 模块名,所以__name__下的代码不会执行
if __name__ == '__main__':
# range左闭右开
for index in range(0, 10):
# 获取单页数据
html = get_one_page(0)
# 保存单页数据
save_one_page(index, html)