爬虫一——抓取猫眼Top100榜单+存在文件里

一页有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)

你可能感兴趣的:(Python)