requests模拟ajax异步请求

本文通过实例演示了如何使用Python的requests库模拟Ajax请求,以获取知乎主题广场的数据。详细介绍了观察数据、分析请求参数及构造完整请求的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以请求知乎主题广场为例子

1. 观察数据

requests ajax

2. 分析

构造请求

import requests
def get_sub_topics(url, topic_id, offset):
    """获取某个topic下的子topic
       topic_id :某个主题的id
       offset :下拉刷新时获取的条数,一次下拉刷新offset增加20
    """
    params = '{0}{4}topic_id{4}:{1},{4}offset{4}:{2},{4}hash_id{4}:{4}{4}{3}'.format('{',topic_id, offset, '}', '"')
    data = {
        "method":"next",
        "params": params
    }
    print(data['params'])
    req = requests.post(SUB_TOPIC_HTTP, data=data, proxies=proxies, headers=REQUEST_HEADERS)
    json_data = req.json()
    sub_topics = json_data['msg']
    print(sub_topics[0])
    print(sub_topics[2])

结果

https://www.zhihu.com/topics#美食 304
{"topic_id":304,"offset":20,"hash_id":""}
<div class="item"><div class="blk">
<a target="_blank" href="/topic/19579555">
<img src="https://pic3.zhimg.com/4ab91208a_xs.jpg" alt="川菜">
<strong>川菜</strong>
</a>
<p>川菜作为中国汉族四大菜系之一,取材广泛,调味多变,菜式多样,口…</p>

<a id="t::-9766" href="javascript:;" class="follow meta-item zg-follow"><i class="z-icon-follow"></i>关注</a>

</div></div>
<div class="item"><div class="blk">
<a target="_blank" href="/topic/19552371">
<img src="https://pic1.zhimg.com/183ecd6c8_xs.jpg" alt="巧克力">
<strong>巧克力</strong>
</a>
<p>巧克力(Chocolate)是以可可做为主料的一种混合型食品,…</p>

<a id="t::-721" href="javascript:;" class="follow meta-item zg-follow"><i class="z-icon-follow"></i>关注</a>

</div></div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值