# Python3 爬虫学习笔记 C03

TRHX

2019-08-23

Python3 学习笔记 / 爬虫学习

字数统计:

563字

阅读时长≈

2分

> Python3 爬虫学习笔记第三章 ——【Ajax 数据爬取】

# 【3.1】Ajax 简介

Ajax — Asynchronous Javascript And XML（异步 JavaScript 和 XML），是指一种创建交互式网页应用的网页开发技术。可以在不重新加载整个网页的情况下，对网页的某部分进行更新。

# 【3.2】解析真实地址提取

以豆瓣电影动作片排行榜为例，地址为：https://movie.douban.com/typerank?type_name=%E5%8A%A8%E4%BD%9C&type=5&interval_id=100:90&action= ，首先使用常用方法来爬取电影信息：

    1
    2
    3
    4
    5
    6
    7
    8

    import requests

    url = 'https://movie.douban.com/typerank?type_name=%E5%8A%A8%E4%BD%9C&type=5&interval_id=100:90&action='

    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"}
    response = requests.get(url, headers=headers)

    print(response.text)

得到的数据里面我们并没有找到电影相关信息：
再次分析页面，发现鼠标下滑的时候，页面不刷新，URL 也不变，但是会加载新数据，那么此处就运用了 Ajax，可以使用抓包工具或者浏览器控制台来捕获 Ajax 接口，获取其真实地址，XHR 是 Ajax 特殊的请求类型，返回的是 json 数据，利用浏览器控制台过滤 XHR，随便点击一条请求，可以看到其 Request URL，也就是真实地址，点击 Preview 就可以看到返回的 json 数据。
同样，我们可以使用 Fiddler 抓包软件抓取 Ajax 接口：
分析其真实地址为：https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=20&limit=20 ，多下滑几次，只有 start 参数发生了改变，观察变化可知：每一次页面将多出20个电影信息，start 为从第几个电影开始，由此就不难进行数据抓取了

代码：

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    import requests

    url = 'https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&'

    page = int(input('请输入想要第几页的数据：'))
    data = {
    	'start': (page - 1)*20,
    	'limit': '20',
    }
    headers = {
    	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
    }
    response = requests.get(url, params=data, headers=headers)
    print(response.text)

运行代码即可得到电影排行信息：

您的喜欢是作者写作最大的动力！❤️

- PayPal
- AliPay
- WeChatPay
- QQPay

Donate

最后更新于 2019年9月24日

爬虫

Ajax

###### 上一页

#### Python3 爬虫学习笔记 C04

###### 爬虫 Selenium

###### 下一页

#### Python3 爬虫学习笔记 C02

###### 爬虫 requests

#### 评论

## ๑۩ﺴ TRHX ﺴ۩๑

本文目录
欢迎光临

Hexo QQ 交流群 Telegram 交流群

CSDN 内容合伙人

文章分类

- BLOG
  (4)
- CDN
  (1)
- Hexo
  (9)
- Java
  (1)
- Linux
  (2)
- Markdown
  (2)
- Python 数据分析
  (27)
- Matplotlib
  (11)
- NumPy
  (6)
- Pandas
  (10)
- Python3 学习笔记
  (41)
- 基础学习
  (9)
- 学习经验
  (4)
- 爬虫学习
  (18)
- 爬虫实战
  (10)
- VPS
  (1)
- WEB前端
  (2)
- 图床
  (1)

热门标签
12306 3D图 58同城 Ajax BLOG Beautiful Soup CDN Coding Pages DataFrame Deepin Elicpse GitHub Pages Github Github Pages GroupBy HTTPS Hexo ICP备案 IO操作 Index JDBC JS 预加载 LaTeX Markdown Material X Matplotlib MongoDB MySQL NumPy PEP8 Pandas PicGo Pygame Python Redis SEO SQL Server 2012 SSR Selenium Series Ubuntu User-Agent VMware VPS XPath if语句 input()函数 instant.page jsDelivr lxml matplotibrc pyspider requests spfk urllib while循环 主题个性化 代理 位运算 公安备案 函数 函数应用 分割 切片 列表 判断函数 前程无忧 变量 合并数据集 哔哩哔哩 图例 图床 图形验证码 垃圾 备份 子图 字典 字符串函数 安居客 层级索引 年终总结 广播 异常 技巧 拼接 排序 排序函数 操作列表 散点图 数学函数 数据分裂 数据可视化 数据合并 数据替换 数据类型 数据读写 数据重塑 数组 文件 文件储存 无界面浏览器 时间序列 映射 条件函数 条形图 极区图 极坐标图 柱状图 模块 正则表达式 滑动验证码 点触验证码 爬虫 猫眼电影 瓜子二手车 画布 直方图 矩阵 等值线图 等高线图 算术函数 算术运算 类 索引 线性代数 线性图 统计函数 统计描述 统计计算 继承 编辑器 缺失值 网格 肺炎疫情 虎扑论坛 补丁 豆瓣电影 迭代 雷达图 饼状图
最近在听