1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| ''' # -*- coding: utf-8 -*- # @Time : 2022/10/29 23:49 # @Author : ReadPond # @Comment : 爬取豆瓣电影详情---->批量爬取 ''' import requests
head = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.24" }
url = "https://movie.douban.com/j/chart/top_list"
''' 通过抓包工具分析得知,当前网站的电影排行榜中的内容为动态数据,且url地址也不是正常官网地址, 电影名称和评分等信息没有存放在主体页面中,而是通过json请求到后端数据库中,所以我们这里需要根据当前网站定义 传入的数据(每个网站的数据方式不同,这里需要具体网站具体分析) ''' param = { "type": "12", "interval_id": "100:90", "action":"", "start":"0" , "limit": "10" } data_html = requests.get(url=url,headers=head,params=param)
html_text = data_html.json()
''' 通过对数据分析,我们得到评分数据以字典的方式存储,每一个电影都以一个object存储 '''
file = open(file='电影排名.txt',mode='w',encoding='utf-8') for dic in html_text: types = dic['types'] title = dic['title'] score = dic['score'] release_date = dic['release_date'] file.write(f"{types}:{title}:{score}-上映时间:{release_date}"+"\n") print(f"{title}保存成功~~") file.close()
|