python爬虫Day2:爬取豆瓣电影信息top250

'''
爬取豆瓣电影信息
    电影排名、电影url、电影名称
    电影导演、电影主演、电影年份/类型
    电影评分、电影评论、电影简介

分析所有主页的url

'''
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,daoyan,actor,year_type,point,commit,desc = movie
    year_type = year_type.strip('\n')
    data = '''
          ==========欢迎观赏==========
            电影排名:{}
            电影url:{}
            电影名称:{}
            电影导演:{}
            电影主演:{}
            电影类型:{}
            电影评分:{}
            电影评论:{}
            电影简介:{}
          ==========下次再来==========
          \n
          \n
          '''.format(top,m_url,name,daoyan,actor,year_type,point,commit,desc)
    print(data)
    with open('douban_top250.txt','a',encoding='utf-8') as f:
        f.write(data)
    print('电影:{}写入成功...'.format(name))

if __name__ == '__main__':
    num = 0
    for line in range(10):
        url = 'https://movie.douban.com/top250?start={}&filter='.format(num)
        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)
'''
爬取豆瓣电影信息
    电影排名、电影url、电影名称
    电影导演、电影主演、电影年份/类型
    电影评分、电影评论、电影简介

分析所有主页的url

'''
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,daoyan,actor,year_type,point,commit,desc = movie
    year_type = year_type.strip('\n')
    data = '''
          ==========欢迎观赏==========
                  电影排名:{}
                  电影url:{}
                  电影名称:{}
                  电影导演:{}
                  电影主演:{}
                  电影类型:{}
                  电影评分:{}
                  电影评论:{}
                  电影简介:{}
          ==========下次再来==========
          \n
          \n
          '''.format(top,m_url,name,daoyan,actor,year_type,point,commit,desc)
    print(data)
    with open('douban_top250.txt','a',encoding='utf-8') as f:
        f.write(data)
    print('电影:{}写入成功...'.format(name))

if __name__ == '__main__':
    num = 0
    for line in range(10):
        url = 'https://movie.douban.com/top250?start={}&filter='.format(num)
        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)

  

上一篇:Ubuntu20.04下使用基于fcitx的输入法时,Mendeley无法输入中文的解决方案


下一篇:C++ 智能指针