zoukankan      html  css  js  c++  java
  • python 爬虫 基于requests模块发起ajax的get请求

    基于requests模块发起ajax的get请求

    需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据 

    用抓包工具捉取 使用ajax加载页面的请求

    鼠标往下下滚轮拖动页面,会加载更多的电影信息,这个局部刷新是当前页面发起的ajax请求,

    用抓包工具捉取页面刷新的ajax的get请求,捉取滚轮在最底部时候发起的请求

    这个get请求是本次发起的请求的url

     ajax的get请求携带参数

    获取响应内容不再是页面数据,是json字符串,是通过异步请求获取的电影详情信息

    start和limit参数 需要注意,改变这两个参数获取的电影详情不一样

    import requests
    import json
    
    # 指定ajax-get请求的url(通过抓包进行获取)
    url = 'https://movie.douban.com/j/chart/top_list?'
    
    # 封装ajax的get请求携带的参数(从抓包工具中获取) 封装到字典
    param = {
        'type': '13',
        'interval_id': '100:90',
        'action': '',
        'start': '20',  # 从第20个电影开始获取详情
        'limit': '20',  # 获取多少个电影详情
        # 改变这两个参数获取的电影详情不一样
    }
    
    # 定制请求头信息,相关的头信息必须封装在字典结构中
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
    }
    
    # 发起ajax的get请求还是用get方法
    response = requests.get(url=url,params=param,headers=headers)
    
    # 获取响应内容:响应内容为json字符串
    data = response.text
    data = json.loads(data)
    for data_dict in data:
        print(data_dict["rank"],data_dict["title"])
    
    '''
    21 芙蓉镇
    22 沉静如海
    23 淘金记
    24 马戏团
    25 情迷意乱
    26 士兵之歌
    27 战争与和平
    28 怦然心动
    29 大话西游之月光宝盒
    30 罗马假日
    31 音乐之声
    32 一一
    33 雨中曲
    34 我爱你
    35 莫娣
    36 卡比利亚之夜
    37 婚姻生活
    38 本杰明·巴顿奇事
    39 情书
    40 春光乍泄
    '''

     从21个电影开始获取信息,总共获取20个电影详情信息

  • 相关阅读:
    nxn随机矩阵乘以概率向量依旧是概率向量
    关于飞行器姿态计算
    两矩阵相乘后的秩
    关于矩阵A*b=A*c 中b是否等于c
    5.5节24题
    推论5.2.5
    js中function参数默认值
    陈经纶学校分析数据导出情况
    支付宝申请
    外国javascript资源搜索
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/11378848.html
Copyright © 2011-2022 走看看