大家好,今天由我来为大家分享ajax获取后端数据,以及ajax获取后端数据的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,接下来我们开始吧!
我们通过 requests 直接提取页面,在提取的结果中只有一点 HTML 内容,主要是一些 javascript和css文件,并没有观察到任何电影数据信息。遇到这种情况,说明我们看到的整个页面都是JavaScript渲染得到的,里面的电影数据一般是通过 Ajax 加载的,JavaScript在后台调用 Ajax 数据接口,得到数据之后,再对数据进行解析并渲染呈现出来。想要爬取这个页面数据,直接爬取 Ajax 接口,再获取数据就好了。
爬取列表页
我们分析列表页的 Ajax 接口逻辑,打开浏览器开发者工具,切换到 Network 面板,勾选 Preserve Log并切换到 XHR 选项卡,接着重新刷新页面,再点击第二页,这时可以观察到不仅页面上的数据发生了变化,开发者工具下方页监听到几个Ajax请求,如下图所示:
我们点开一个Ajax请求,其接口的请求
URL为: 通过观察多个 Ajax 接口的参数,我们总结出这么一个规律,limit 一直为10,正好对应每页10条数据,offset 再依次变大,页数每加1,offset 就加10,因此其代表页面的数据偏移量。这样的话,我们只需要构造出所有页面的 Ajax 接口,就可以轻松获取所有页面的数据了。
我们先定义一个 scrape api 方法,这个方法用来实现对一个 Ajax 接口数据的获取,这是一个通用的方法,返回的内容为一个 JSON 字符串。

接着我们定义一个爬取列表页的方法:acrape index,它接收一个参数page,该参数代表列表页的页码。
这样我们就完成了列表页的爬取,每次发生 Ajax 请求都会得到 10 电影数据信息。
爬取详情页
虽然我们已经可以拿到每一页的电影数据,但是这项数据实际上还缺少一些我们想要的信息,如剧情简介等,所有需要进一步进入详情页来获取这些内容。以查看列表页同样的方法查看详情页调用的Ajax接口,可以发现详情页的接口URL为:
我们将数据保存在 MongoDB数据库中,具体代码如下:
最后定义一个总的调用方法main:
运行脚本,可以看到爬取成功,并成功存储数据,没有任何报错信息。
以上是关于ajax获取后端数据的相关信息,了解更多关于内容请继续关注本站。