雨晨 发表于 2022-1-28 22:43

【好好学爬虫2】用requests爬取豆瓣电影详情数据

豆瓣电影地址:https://movie.douban.com/typeran ... l_id=100:90&action=
需求:爬取电影详情数据,如电影名,演员,评分等
工具:谷歌浏览器抓包工具按F12调取出来
分析:1、判断网站是否是动态加载这里是局部搜索

是动态加载有去哪里找数据昵? 这个为全局搜索



找到我们要的数据了
我们把数据复制到https://www.json.cn/json/jsononline.htmlJSON解析下数据


数据存在字典里面的
点击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


下面我们开始写代码

```python
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里的数据是一个字典,循环取出字典中的值

如果有不到位的地方请海涵

1039468583 发表于 2022-1-28 23:06

哈哈哈 豆瓣好像是爬虫第一课

chenkeai深蓝 发表于 2022-1-29 09:35

好好学爬虫,人生苦短

du2009 发表于 2022-1-29 10:02

亲测有效,就是感觉放在txt文档里不是很好查看。

dipper 发表于 2022-1-29 12:19

很不错的教程

ing512138 发表于 2022-1-29 13:34

一看这个就想起正则表达式:lol
页: [1]
查看完整版本: 【好好学爬虫2】用requests爬取豆瓣电影详情数据