什么是ajax呢,简单来说,就是加载一个网页完毕之后,有些信息你你还是看不到,需要你点击某个按钮才能看到数据,或者有些网页是有很多页数据的,而你在点击下一页的时候,网页的url地址没有变化,但是内容变了,这些都可以说是ajax。如果还听不懂,我给你看看百度百科的解释吧,下面就是。

Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。

Ajax = 异步 JavaScript 和 XML(标准通用标记语言的子集)。

Ajax 是一种用于创建快速动态网页的技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

下面说下例子,我抓取过的ajax网页最难的就是网易云音乐的评论,感兴趣的可以看看利用python爬取网易云音乐,并把数据存入mysql

这里的评论就是ajax加载的,其他的那个抓今日头条妹子图片的也算是ajax加载的,只不过我把它简单化了。还有很多,就不说了,说下我今天要说的ajax网站吧!

http://www.kfc.com.cn/kfccda/storelist/index.aspx

这个是肯德基的门面信息

这里有很多页数据,每一页的数据都是ajax加载的。如果你直接用python请求上面那个url的话,估计什么数据都拿不到,不信的话可以试试哈。这时候,我们照常打开开发者工具。先把所有请求清楚,把持续日志打上勾,然后点击下一页,你会看到

上面那个请求就是ajax请求的网页,里面就会有我们需要的数据,我们看看是什么样的请求

是个post请求,请求成功状态码为200,请求url上面也有了,下面的from data就是我们需要post的数据,很容易就可以猜到pageIndex就是页数,所以我们可以改变这个值来进行翻页。

这个网页就分析完了,这样就是解决ajax动态网页了,是不是觉得很简单,其实不是的,只是这个网页比较简单的,因为表单(from data)的数据并没有进行加密,如果进行加密的话估计你的找js文件看看参数是怎样加密的了,这就是我之前写的网易云音乐评论的爬取。看这些混淆的js寻找加密方法的话有时会让你很头痛,所以经常有人会选择用selenium这些来进行爬取,但是用这些会使爬虫的性能降低,所以这个方法在工作里是不允许的。所以必须学会怎样应对这些ajax。

贴下代码

import requestspage = 1while True:   url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'   data = {           'cname': '广州',           'pid': '',           'pageIndex': page,           'pageSize': '10'   }   response = requests.post(url, data=data)   print(response.json())   if response.json().get('Table1', ''):       page += 1   else:       break

可以看到去掉from data,不用十行代码就可以把数据都爬下来了,所以说这个网站适合练手,大家可以去试试。

写在最后

下篇文章我会写下复杂点的ajax请求,这个网站

http://drugs.dxy.cn/

谈谈如何抓取ajax动态网站相关推荐

  1. C#利用phantomJS抓取AjAX动态页面

    在C#中,一般常用的请求方式,就是利用HttpWebRequest创建请求,返回报文.但是有时候遇到到动态加载的页面,却只能抓取部分内容,无法抓取到动态加载的内容. 如果遇到这种的话,推荐使用phan ...

  2. python爬虫抓取动态网页数据_python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例...

    一,尝试用BeautifulSoup抓取 先打开KFC网站门店列表页面:http://www.kfc.com.cn/kfccda/storelist/index.aspx 可以看到门店列表如下图: 打 ...

  3. 益达教你如何抓取Ajax动态页面

    何为Ajax动态网页,我想不用我多说了吧,如果你连Ajax是啥玩意儿都不知道,那你还是先去Google学习Ajax吧.为了形象起见,这里我以抓取这个网页为例进行讲解说明.网页链接如下:         ...

  4. scrapy实战5 POST方法抓取ajax动态页面(以慕课网APP为例子):

    在手机端打开慕课网,fiddler查看如图注意圈起来的位置 经过分析只有画线的page在变化 上代码: items.py 1 import scrapy 2 3 4 class ImoocItem(s ...

  5. js动态渲染html页面,利用Scrapy-Splash抓取JS动态渲染的网页数据

    随着越来越多的网站开始用JS在客户端浏览器动态渲染网站,导致很多我们需要的数据并不能由原始的html中获取,再加上Scrapy本身并不提供JS渲染解析的功能,通常对这类网站数据的爬取我们一般采用两种方 ...

  6. 爬虫Spider 05 - 代理参数-proxies | 控制台抓包 | requests.post() | 动态加载数据抓取-Ajax

    文章目录 Spider 04回顾 requests.get()参数 常见的反爬机制及处理方式 Spider 05笔记 代理参数-proxies **控制台抓包** **requests.post()参 ...

  7. python爬百度新闻_13、web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息...

    crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息, ...

  8. 网站优化中哪些设置会影响蜘蛛的抓取?对网站SEO产生什么影响?

    网站在优化中,要有一定的收录基础才能有更大的几率提升排名,并获得搜索引擎的喜爱.但在网站优化中难免会有一些细节没注意到而影响蜘蛛的抓取,下面就带大家一起了解一下. 一.登录设置 有些网站会设置注册账号 ...

  9. 如何让搜索引擎抓取AJAX内容

    2019独角兽企业重金招聘Python工程师标准>>> 越来越多的网站,开始采用"单页面结构"(Single-page application). 整个网站只有一 ...

最新文章

  1. salesforce bigobject 的限制_苹果进一步限制第三方维修
  2. 获取进程号并赋值判断进程状态
  3. ASP.NET AJAX深入浅出系列课程
  4. 反恐精英起源服务器文件在哪,反恐精英:起源人物模型放哪里
  5. Java秒杀系统实战系列~分布式唯一ID生成订单编号
  6. 一文搞懂常见概率分布的直觉与联系
  7. Android系统自带样式(@android:style/) (转)
  8. 在Mysql中遇到关于区间范围内的索引优化
  9. 想下以前的CyanogenMod 源码怎么办
  10. python关于类、self、_init_的应用
  11. openpose的搭建
  12. python新冠病毒COVID-19数据分析和数据可视化
  13. word2vec源码分析
  14. [日常] SinaMail项目和技术能力总结
  15. 自动阅读脚本root的好还是免root的好?
  16. 美的空气能计算机故障维修,美的空气能故障代码,常见故障原因汇总,勿要错过...
  17. 简述python在量化金融中应用_AQF课程丨Python量化投资与金融实战应用只要499
  18. 一个新的App该如何推广?
  19. filezilla server搭建ftp服务器步骤
  20. 前端link标签引入css教程

热门文章

  1. 全景影像多层级瓦片生成
  2. 菜鸡的ShaderForge3-利用UV贴图制作卡通风格材质
  3. JAVA判断身份证格式是否正确
  4. 网易云易盾关于极验所述问题的致歉和说明
  5. java weblogic.wlst_Weblogic - 使用Wlst获取部署类型
  6. 2021年CS保研经历(五):北航计算机学院、武汉大学数学与统计学院、华科计算机科学与技术学院
  7. ElasticSearch(四):DSL Query
  8. 自己动手写CPU(5)——移动指令说明
  9. c语言判断a b大小的值,c语言abc条件值的判定
  10. Linux命令 之 ifconfig命令