request简单爬虫

import requests
import time
import json

from contextlib import contextmanager
url = "https://movie.douban.com/j/chart/top_list"

params = {
    "type": 24,
    "interval_id": "100:90",
    "action": "",
    "start": 0,
    "limit": 20
}

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
}

@contextmanager
def request_data(url, params, headers):
    response = None
    try:
        response = requests.get(url, params=params, headers=headers)
    except Exception as e:
        print(f"请求失败: {e}")
    finally:
        if response:
            response.close()
    yield response.json()

def get_data(start):

    while True:
        params["start"] = start
        with request_data(url, params, headers) as response:
            if len(response) < 20:
                print("数据获取完毕")
                break
            start += 20
            time.sleep(0.5)
            print(f"数据获取完毕,开始获取第{start}页数据")
            yield response
        
        

for data in get_data(0):
    with open("douban.json", "a", encoding="utf-8") as f:
        for item in data:
            f.write(json.dumps(item, ensure_ascii=False) + "\n")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值