''' 爬取电影内容: 电影名称、电影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)
# 结束