ajax传输json数据格式 ajax发送json数据实例


ajax传输json数据格式 ajax发送json数据实例

文章插图
在第一篇文章中,我总结了最近学到的利用requests和bs4第三方库共同作用,基本可以应对python获取静态网页数据的相关问题 。但是如果现实中的网页往往比想象中复杂的多,网页也早已不再是纯静态网页 。
就比如在第一篇文章中爬取的网易云课堂计算机专业大学课程中,如果我们进一步爬取计算机专业可以就业的岗位信息时,通过开发者工具,我们发现,我们所需要的数据位于id=”j-smartSpec” 的div中,
然而,我们利用之前的方法进行会发现最后得到的list为空,那么我们检查一下源代码,好不容易找到了意料之中的标签id,但是我们惊奇的发现,里面什么都没有呀:
好气呀!~可是对于渴望获取想要的数据的决心,我们当然要有一探究竟的耐心的啦~经过多种方式,我们肯定会了解到这是AJAX在捣鬼,AJAX 是一种用于创建快速动态网页的技术 。这种技术使我们可以通过在后台与服务器进行少量数据交换,从而使网页实现异步更新 。这意味着可以在不重新加载整个网页的情况下,浏览器可以对网页的某部分进行更新 。
此时想要获取数据,就要考虑它是通过什么传递新的信息给我们 。
实际就是python对动态网页、异步加载的爬取 。
————————————————————————————————真^分界线
以上引出本文的主题 。
正文
一、方法分析
其实任何动态产生的内容,要么是本地计算,要么是从服务器获取的 。前者看js,后者需要抓包 。而后者经常配上各种参数加密,不过既然浏览器能正确发送参数,那么就证明肯定有办法模拟(当然不容易) 。如果有能力,模拟发包 。如果嫌麻烦,用现成的包来模拟操作浏览器 。
那么通常来讲,获取动态数据有两种思路或者说是方法:
1. 分析页面请求 2. 利用selenium模拟浏览器行为或其他抓包工具直接获取(比较暴力有没有)
效率最高的就是分析出请求数据的URL 一般都可以 而selenium 实在没辙的时候再用 。
本篇文章也仅对第一种方法进行介绍(当然是要实货,不动手是没有用滴),若之后几天仍然很闲,会继续介绍下一种方法
二、开始战斗(目标:股票|上海证券交易所)
说了半天,总算要开始了 。一年之计在于春,一天之计在于晨 。
我们起码要先确定一个方向,看了一下目标页面:
有用的就是公司代码,公司简称,A股代码,A股简称以及A股总资本和A股流通资本这几项 。
所以我们的目标就是爬它30页,这些信息全部都要 。
三、寻找数据位置
还是以前的基本思路,首先在页面找准数据位置检查,找到标签所在位置,在前言中我们大概也有了些许经验,这时我们试探地打开源代码,这次看到什么都没有似乎也不那么生气了~
接下来是没有介绍过的东西!!即分析出AJAX加载出的文件是哪一个:
如图,在开发者工具Network中的JS中分析,如果感觉实在太多文件不好分析,那么我们发现上面有上市A股点击会小范围刷新的现象,最终可以完全明确目标
这样一来,我们可以说是完成了一半了(其他如果轻车熟路就基本没有什么了)
下一步就是打开目标验证一下有没有我们需要的数据
What????这又是啥情况
嘿嘿,这真的心里又是一惊,403码表示什么呢,就是我们没有权限浏览目标地址 。这是网站的自我保护行为 。
那咋办呢?我们没有权限啊,可是我们在自己原来的页面不是可以获取这些的嘛!


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: