Day02---requests请求库爬取豆瓣电影信息

时间:2021-09-21 12:25:44
'''
爬取电影内容:
    电影名称、电影url、电影排名
    电影导演、电影主演、年份类型
    电影评分、电影评论、电影简介

1.分析所有主页的url
第一页:https://movie.douban.com/top250?start=0&filter=

第二页:https://movie.douban.com/top250?start=25&filter=

第三页:https://movie.douban.com/top250?start=50&filter=

...

'''

导入包

import requests
import re

爬虫三部曲

# 1.发送请求

def get_page(url):
    response=requests.get(url)
    # print(response.text)
    return  response
# 2.解析数据

def parse_index(html):
    movie_list = re.findall('<div class="item">.*?<em class="">(.*?)</em>.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?导演: (.*?)主演: (.*?)<br>(.*?)</p>.*?<span class="rating_num".*?>(.*?)</span>.*?<span>(.*?)人评价</span>.*?<span class="inq">(.*?)</span>',html,re.S)
    return movie_list
# 3.保存数据

def save_data(movie):
    top, m_url, name, director, actor, year_type, point, discussion, desc = movie
    year_type = year_type.strip(' \n')
    data = f'''
            ==========欢迎观赏==========
                    电影排名:{top}
                    电影url:{m_url}
                    电影名称:{name}
                    电影导演:{director}
                    电影主演:{actor}
                    年份类型:{year_type}
                    电影评分:{point}
                    电影评论:{discussion}
                    电影简介:{desc}
            ==========下次光临==========
            \n
            \n
    '''
    print(data)

    with open('douban_top250.txt','a',encoding='utf-8')as f:
        f.write(data)

    print(f'电影:{name} 写入成功!')

主函数

if __name__ == '__main__':

拼接所有主页

num=0
    for line in range(10):
        url = f'https://movie.douban.com/top250?start={num}&filter='
        num+=25
        print(url)

        # 1.往每个主页发送请求
        index_res=get_page(url)

        # 2.解析主页获取电影信息
        movie_list = parse_index(index_res.text)

        for movie in movie_list:
            # print(movie)

            # 3.保存数据
            save_data(movie)

 # 结束