爬取豆瓣电影榜单Day02-1

#!/usr/bin/env python
#coding: utf8
#python2
#一、requests请求库爬去豆瓣电影信息
    #请求url:https://movie.douban.com/top250
    #请求方式:GET
    #请求头:
    #User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36
    #1.分析所有页面的url
    #第一页https://movie.douban.com/top250
    #第二页https://movie.douban.com/top250?start=25&filter=
    #第三页https://movie.douban.com/top250?start=50&filter=
    #电影排名 电影名称 电影url 电影导演
    #电影主演 电影年份 电影类型 电影评分
    #电影评论 电影简介

import requests
import re
#1.发送请求
def get_page(url):
    response = requests.get(url)
    # print(response.text)
    return response
#2.解析数据
def parse_index(html):
    '''
    电影排名 电影名称 电影url 电影导演
    电影主演 电影年份 电影类型 电影评分
    电影评论 电影简介
    <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>

    <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>
    '''

    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

def save_data(movie):
    top,m_url,name,daoyan,actor,year_type,point,commit,desc = movie
    year_type = year_type.strip('/n')
    year_type = year_type.strip(' ')
    data = f'''
            ******************** 欢迎来到豆瓣top榜 *******************
                        电影排名:{top}
                        电影url :{m_url}
                        电影名称:{name}
                        电影导演:{daoyan}
                        电影主演:{actor}
                        电影年份类型:{year_type}
                        电影评分:{point}
                        电影评论:{commit}
                        电影简介:{desc}
             ******************** 欢迎来到豆瓣top榜 *******************
      
                \n
                \n
                \n  
                '''
    print(data)
#   'a'是追加写 'w'是把原来删除掉重新写
    with open('doubanTOP2504.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:
            save_data(movie)

猜你喜欢

转载自www.cnblogs.com/zxdhahaha/p/11122707.html