python爬虫13--Ajax数据爬取

1. Ajax介绍

Ajax,Asynchronous JavaScript and XML,即异步的JavaScript和XML。它不是编程语言,而是利用JavaScript在保证页面不被刷新、页面链接不改变的情况下,与服务器交换数据并更新部分网页的技术。

2. Ajax基本原理

发送Ajax请求到网页更新的过程可以分为3步:

  • 发送请求
  • 解析内容
  • 渲染页面
//创建XMLHttpRequest对象
var xmlhttp;
if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
}else{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

//向服务器发送数据
xmlhttp.open("GET","test.asp",true);
xmlhttp.send();

2.1 发送请求

利用JavaScript实现页面的交互功能,新建XMLHttpRequest对象,然后调用 onreadystatechange 属性设置了监听,然后用open和send方法向服务器发起请求。相当于前面python实现请求发送,此处请求发送变成JavaScript来完成。

2.2 解析内容

发送请求后, onreadystatechange 对应的方法被触发,利用xmlhttp的responseText属性可取得相应内容(html或json)。如果是json可以进行解析和转化。

2.3 渲染页面

解析完相应内容后,通过document.getElementById("myDiv").innerHTML操作,对某个元素内的源代码进行操作,元素内将呈现出服务器返回的新数据,网页内容即更新了。

整个过程实际是JavaScript向服务器发送了一个Ajax请求,然后获取新的数据,并将其解析,并将其渲染在网页中。

3.Ajax分析方法

3.1查看请求

Network中找到Type为xhr(Ajax的请求类型)的请求,该请求Request Headers中有一个信息为X-Requested-With:XMLHttpRequest,即标记了该请求为Ajax请求。

3.2 过滤请求

筛选出所有XHR请求。

4.Ajax结果提取

4.1 分析请求

分析XHR中请求的参数信息,可找到url规律。

4.2 分析响应

分析响应页面

5.案例--今日头条街拍美图下载

原文地址:https://www.cnblogs.com/rong1111/p/12184365.html

时间: 2024-08-25 11:42:36

python爬虫13--Ajax数据爬取的相关文章

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht

爬虫1.5-ajax数据爬取

目录 爬虫-ajax数据爬取 1. ajax数据 2. selenium+chromedriver知识准备 3. selenium+chromedriver实战拉勾网爬虫代码 爬虫-ajax数据爬取 1. ajax数据 ajax (异步JavaScript 和 XML)(读作阿贾克斯),ajax可以时网页实现异步更新,一般使用的json数据交互,即在不重新加载整个页面也可以对网页的部分进行更新,ajax技术加载的数据在网页源代码中是看不到的,只能看到url加载的html部分 获取ajax数据的两

转 Python爬虫实战二之爬取百度贴吧帖子

静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件

Ajax数据爬取

Ajax数据爬取 简介 数据加载是异步加载,局部刷新.web开发的前后端分离通常都用Ajax交互,降低了服务器直接渲染页面带来的压力 基本原理 发送请求 解析内容 渲染网页 其实就是 向后端指定接口发送请求,返回数据,渲染页面 JS对Ajax底层的实现,实际上是新建了一个XMLHttpRequest对象 Ajax分析方法 发送的请求类型为 XHR :Request Headers 中就有一条信息为 X-Request-With:XMLHttpRequest ,这就标记了该请求为Ajax请求:返回

Python爬虫新手教程:爬取了6574篇文章,告诉你产品经理在看什么!

作为互联网界的两个对立的物种,产品汪与程序猿似乎就像一对天生的死对头:但是在产品开发链条上紧密合作的双方,只有通力合作,才能更好地推动项目发展.那么产品经理平日里面都在看那些文章呢?我们程序猿该如何投其所好呢?我爬取了人人都是产品经理栏目下的所有文章,看看产品经理都喜欢看什么. 1. 分析背景 1.1. 为什么选择「人人都是产品经理」 人人都是产品经理是以产品经理.运营为核心的学习.交流.分享平台,集媒体.培训.招聘.社群为一体,全方位服务产品人和运营人,成立8年举办在线讲座500+期,线下分享

python实现人人网用户数据爬取及简单分析

这是之前做的一个小项目.这几天刚好整理了一些相关资料,顺便就在这里做一个梳理啦~ 简单来说这个项目实现了,登录人人网并爬取用户数据.并对用户数据进行分析挖掘,终于效果例如以下:1.存储人人网用户数据(户主的全部好友.户主好友的全部好友.户主及好友关注的公共主页).2.信息可视化,绘制户主好友间的关系网络图:3.数据挖掘,通过分析户主好友关注的公共主页,向户主推荐公共主页. 项目分为三个部分,各自是人人网登录及用户数据爬取与存储.用户关系可视化.公共主页推荐.以下分别介绍这三个部分. 第一部分实现

Python爬虫之简单的爬取百度贴吧数据

首先要使用的第类库有 urllib下的request  以及urllib下的parse  以及 time包  random包 之后我们定义一个名叫BaiduSpider类用来爬取信息 属性有 url:用来爬取的网址             headers:请求头 class BaiduSpider(object): def __init__(self): self.url = 'http://tieba.baidu.com/f?kw={}&pn={}' self.headers = {'User

Python爬虫之利用正则表达式爬取内涵吧

首先,我们来看一下,爬虫前基本的知识点概括 一. match()方法: 这个方法会从字符串的开头去匹配(也可以指定开始的位置),如果在开始没有找到,立即返回None,匹配到一个结果,就不再匹配. 我们可以指定开始的位置的索引是3,范围是3-10,那么python将从第4个字符'1'开始匹配,只匹配一个结果. group()获得一个或多个分组的字符串,指定多个字符串时将以元组的形式返回,group(0)代表整个匹配的字串,不填写参数时,group()返回的是group(0). 1 import r

Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧

前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. stars声明很多小伙伴学习Python过程中会遇到各种烦恼问题解决不了.为此小编建了个群 624440745. 不懂的问题有老司机解决里面还有最新Python教程项目可拿,,一起相互监督共同进步! 此文属于入门级级别的爬虫,老司机们就不用看了. 本次主要是爬取网易新闻,包括新闻标题.作者.来源.发布时间.新闻正文. 首先我们打开163的网站,我们随意选择一个分类,这里我选

Python 爬虫入门实例(爬取小米应用商店的top应用apk)

一,爬虫是什么? 爬虫就是获取网络上各种资源,数据的一种工具.具体的可以自行百度. 二,如何写简单爬虫 1,获取网页内容 可以通过 Python(3.x) 自带的 urllib,来实现网页内容的下载.实现起来很简单 import urllib.request url="http://www.baidu.com" response=urllib.request.urlopen(url) html_content=response.read() 还可以使用三方库 requests ,实现起