一、学习目标
1、抓取豆电影中的最新热门电影;其中按照不同类型进行抓取
2、这里是get请求的方式
3、json文件元素的值获取
4、文件写入保存
二、解决思路
1、准备好url地址【https://movie.douban.com/】,按F12进行网页分析,从网页中可以得到请求方式为get,并且针对不同类型电影请求式的发起链接如下:
https://movie.douban.com/j/search_subjects?type=movie&tag=最新&page_limit=50&page_start=0 https://movie.douban.com/j/search_subjects?type=movie&tag=豆瓣高分&page_limit=50&page_start=0 https://movie.douban.com/j/search_subjects?type=movie&tag=冷门佳片&page_limit=50&page_start=0 https://movie.douban.com/j/search_subjects?type=movie&tag=华语&page_limit=50&page_start=0 https://movie.douban.com/j/search_subjects?type=movie&tag=欧美&page_limit=50&page_start=0 https://movie.douban.com/j/search_subjects?type=movie&tag=韩国&page_limit=50&page_start=0 https://movie.douban.com/j/search_subjects?type=movie&tag=日本&page_limit=50&page_start=0
针对其中冷门佳片进行网页分析,可以在响应中看到,是可以得到有效的数据的,如下图
三、实例代码
#1、导入模块 import json import requests #2、准备url地址,并发起请求 movic_type = input("请选择电影类型:0-热门,1-最新,2-豆瓣最高,3-冷门佳片,4-华语,5-,6-韩国,7-日本\n") dict = { "0":"热门", "1":"最新", "2": "豆瓣最高", "3": "冷门佳片", "4": "华语", "5": "欧美", "6": "韩国", "7": "日本" } url = f"https://movie.douban.com/j/search_subjects?type=movie&tag={dict[movic_type]}&page_limit=50&page_start=0" #3、获取数据,并解析 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42" } resp = requests.get(url=url ,headers=headers).json() for movic_list in resp["subjects"]: rate = movic_list["rate"] cover_x = movic_list["cover_x"] title = movic_list["title"] url = movic_list["url"] playable = movic_list["playable"] cover = movic_list["cover"] id = movic_list["id"] cover_y = movic_list["cover_y"] is_new = movic_list["is_new"] print(title + " 评分:"+ rate +" 链接:"+ url ) #4、保存数据 with open("电影.txt",'a',)as f: f.write(title + " 评分:"+ rate +" 链接:"+ url) f.write("\n") f.close()
其中获取到json格式的数据后,循环字典来获取每一个元素的值
四、总结
1、在最后保存数据的时候,注意要要用a表示追加写入,否则的话就会覆盖上一次写入的内容
标签:p2,douban,movie,电影,movic,list,豆瓣,type,page From: https://www.cnblogs.com/zp513/p/17948118