day02 爬取豆瓣电影信息代码
# 请求url: # https://movie.douban.com/top250 # 请求方式: # GET # 请求头: # User-Agent # cookies ''' 爬取豆瓣电影信息: 电影名称 电影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): reponse=requests.get(url) return reponse #2.解析数据 def parse_index(html): ''' <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 #3.保存数据 def save_data(movie): top, m_url, name, daoyan, actor, year_type, point, talk, desc = movie year_type=year_type.strip('\n') data = f''' ===============欢迎来到豆瓣电影=============== 电影排名:{top} 电影url:{m_url} 电影名称:{name} 电影导演:{daoyan} 电影主演:{actor} 电影类型:{year_type} 电影评分:{point} 电影简介:{desc} 电影评论:{talk} =================欢迎下次再来================== \n \n ''' print(data) with open('douban_top250.text','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)