Python爬取豆瓣电影数据返回[],没有数据

问题遇到的现象和发生背景

Python爬取豆瓣电影数据返回[],没有数据

问题相关代码,请勿粘贴截图
# 需求:获取豆瓣电影类型分类下的电影列表
import requests
import json
if __name__ == "__main__":
    # UA伪装:将对应的User-Agent封装到一个字典中
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0'
    }
    # 1.指定url
    url = 'https://movie.douban.com/j/chart/top_list'  # ?type=24&interval_id=100:90&action=&start=60&limit=20
    # 2.封装url问号后面的参数
    param = {
        'type': '24',
        'interval_id': '100: 90',
        'action': '',
        'start': '20',  # 表示从第几部电影开始取
        'limit': '20',  # 表示一次请求取的个数
    }
    # 3.发起get请求
    response = requests.get(url=url, params=param, headers=headers)

    list_data = response.json()
    print(list_data)
    # 4.进行持久化存储(注意导入json模块)
    fileName = './douban.json'
    fp = open(fileName, 'w', encoding='utf-8')
    json.dump(list_data, fp=fp, ensure_ascii=False)

    print('豆瓣爬取结束!!')

运行结果及报错内容

[]
豆瓣爬取结束!!

请看看,谢谢!!

找到问题了 interval_id 后面100:90冒号后多了一个空格

requests对象的get和post方法都会返回一个Response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。其中返回的网页部分会存.text对象中。

Python json 模块
json.dumps将python对象格式化成json字符(将dict转化成str)
json.loads将json字符串解码成python对象(将str转化成dict)


import requests
import json

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0'
    }

url = 'https://movie.douban.com/j/chart/top_list?type=24&interval_id=100:90&action=&start=60&limit=1'

re = requests.get(url=url, headers=headers)

r = re.text

data = json.loads(r)

print(data)

url = 'https://movie.douban.com/j/chart/top_list' # ?type=24&interval_id=100:90&action=&start=60&limit=20

地址里有#,后半部分变成了注释,改成下面的
url = 'https://movie.douban.com/j/chart/top_list?type=24&interval_id=100:90&action=&start=60&limit=20