python 小案例

腾讯课堂评论单页案例

评论页面属于通过鼠标单击触发的请求,属于异步加载 XHR里面找到了数据包

1个数据包 1个url的response 10条评论 ,json类型


import requests
import jsonpath

if __name__ == '__main__':
    # 1.确认目标url
    url = "https://ke.qq.com/cgi-bin/comment_new/course_comment_list?cid=383855&count=10&page=0&filter_rating=0&bkn=&r=0.9750614788008092"

    # 用户代理的设置
    headers = {
        "user-agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
        "Referer":"https://ke.qq.com/course/383855"
    }

    # 2.发送请求,得到响应数据
    response  = requests.get(url,headers=headers)

    # json_data = response.text
    # print(json_data)
    python_data = response.json()

    # 3.解析数据
    name_list = jsonpath.jsonpath(python_data,'$..nick_name'# 列表
    print(name_list)

    comment_list = jsonpath.jsonpath(python_data, '$..first_comment')  # 列表
    print(comment_list)

    for i in range(len(name_list)):
        dict_ = {}
        dict_[name_list[i]] = comment_list[i]
        print(dict_)




{"msg":"refer错误","type":1,"retcode":100101} >> 没有成功的抓取到数据

分析:referer错误 新的反爬点 >> refer跳转

1.User-Agent 2.Cookie 3.referer 跳转

添加跳转信息: 部分特殊url的请求,网站会检查你是从哪一个url跳转过来的

检查点:需要从主页进行跳转,否则拒绝请求

客厅 > 卧室 腾讯课堂的主页 > 评论页面 窗户 > 卧室

本文由 mdnice 多平台发布

你可能感兴趣的:(python)