https://www.runoob.com/python/python-json.html
我的理解就是告诉网站那边的人我是通过浏览器访问的,防止它分辨出我不是正常用户访问网站。
这里要注意爬数据和调接口不是一回事,调接口我们是直接请求后端的数据,而爬取数据是处理数据。
但是我感觉下面的代码是通过调用接口,然后对返回的数据进行过滤。
import json
import requests
from bs4 import BeautifulSoup
import openpyxl
wb = openpyxl.Workbook()
# 创建工作薄
sheet = wb.active
# 获取工作薄的活动表
sheet.title = 'movies'
# 工作表重命名
sheet['A1'] = '电影名' # 加表头,给A1单元格赋值
sheet['B1'] = '评分' # 加表头,给B1单元格赋值
sheet['C1'] = '播放链接' # 加表头,给C1单元格赋值
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36'}
url = 'https://movie.douban.com/j/search_subjects?'
if True:
# 封装参数
params = {
'type': 'movie',
'tag': '热门',
'page_limit': '100',
'page_start': '0',
}
# 发送请求,并把响应内容赋值到变量res里面
res = requests.get(url, headers=headers, params=params)
res_text = res.text
# 确认这个response对象状态正确
print(res.status_code)
# 如果响应成功,继续
if int(res.status_code) == 200:
movies = json.loads(res_text)
print(movies)
# 定位数据
subjects = movies['subjects']
for movie in subjects:
title = movie['title']
rate = movie['rate']
url = str(movie['url'])
sheet.append([title, rate, url])
# for i in subjects:
# print()
wb.save('movie.xlsx')
https://blog.csdn.net/weixin_44940488/article/details/107600851