豆瓣电影地址:https://movie.douban.com/typeran ... l_id=100:90&action=
需求:爬取电影详情数据,如电影名,演员,评分等
工具:谷歌浏览器抓包工具 按F12调取出来
分析:1、判断网站是否是动态加载 这里是局部搜索
是动态加载有去哪里找数据昵? 这个为全局搜索
找到我们要的数据了
我们把数据复制到https://www.json.cn/json/jsononline.html JSON解析下数据
数据存在字典里面的
点击Headers
找到请求链接:https://movie.douban.com/j/chart/top_list?type=13&interval_id=100%3A90&action=&start=0&limit=20
top_list后面的都是请求参数
请求参数在哪里找呢?
请求链接https://movie.douban.com/j/chart/top_list
下面我们开始写代码
import requests #导入模块
#请求地址
url="https://movie.douban.com/j/chart/top_list"
#UA伪装
heads={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
}
#请求参数
paems={
"type":"13",
"interval_id": "100:90",
"action":" ",
"start": "80",
"limit": "20"
}
#发起请求
reqs=requests.get(url=url,headers=heads,params=paems)
#获取响应数据
#json()可以将获取到的json格式的字符串进行反序列化
reqs_text=reqs.json()
print(reqs_text)
#打开一个文件,自动创建
fp=open("./豆瓣电影详情.txt","w",encoding="utf-8")
#循环拿到想要的数据
for dic in reqs_text:
title=dic["title"]
year=dic["release_date"]
actors=dic["actors"]
fp.write(f"电影名:{title},年份:{year},演员:{actors}\n")
print(title,"爬取成功")
#关闭文件
fp.close()
reqs_text里的数据是一个字典,循环取出字典中的值
如果有不到位的地方请海涵 |