ajax怎么获取下拉框的值_趣说Python爬虫06--Ajax数据爬取

2952293d8207b673937730ef6b5197d1.gif
fc8f7c6d4a386a9d3d0e6093ef901ae5.png

上回我们说到Python大星

“试炼之路”历经九九八十一难

披荆斩棘

终于“立地成佛”

恭喜FPX成功夺取S9总决赛冠军

422aef80d4f45f4dbce95f0691140cc1.png

说错了!!!

恭喜Python大星晋级为“五星爬者”

23a2a642425bf2460b87aaf19010c34d.png

掌握好基本功Python大星开车带你飞...

作为一名合格的“爬者”

我们要对浏览器功能如数家珍

以“今日头条” 主页为例

右键“审查”元素

e84ee93684733c3833d5c1fbdf87a891.png

Elements 选项卡中便会观察到网页的源代码

右侧便是节点样式


9598cd3c03f8ecf32516ec96ebd32d2e.png

Network 选项卡

这里是在页面加载过程中浏览器与服务器之间发送请求和接收响应的所有记录。

36370279a804bf985c72475dcfc39a46.png
d5d53892476bf42e80f2352d6ffc572a.png

记录中Type类型为xhr是Ajax请求

Ajax核心XMLHttpRequest对象

简称xhr

come on!跟我单击第一条链接...

这是页面的原始的链接

330b91528a28a3b3b630e820b2e75ddd.png

在右侧可以观察到其

Request HeadersURL

Response Headers 等信息

切换到Response选项卡

Python大星发现一个奇怪的现象:

显示的html代码并不是全部页面本身

原来这里就是用到了Ajax

其原理:

发送请求

解析内容

渲染网页

我们可以通过选中XHR选项筛选Ajax请求的数据

3fab1c6b67664d20e4623013d964304d.png

在浏览器Preview选项

可以查看Ajax请求返回的处理过的内容,

比如Json格式展示的数据

可以展开方便查阅

Response选项:响应信息面板包含资源还未进行格式处理的内容,不能显示图片

8b3ab3bd1241e171aac4529c629fa964.png
41ae25c8438202096da409b8ff5a15a9.png

网页中有很多场景使用了Ajax请求

Python大星带你玩转Ajax

fcd6e56a7a0ce1b2e7cc8cf09c522bef.png

进入Python大星头条主页

fcd539140ad3b37190553868250f316a.png

“文章”选项栏中

我们可以看到Python大星的历史文章目录

我们往下翻阅

你会发现下面这一amazing现象

爱的魔力转圈圈。。。加载中。。。

687e71d5d7f3d5daa194503b41790995.png

用我上面传给你的“内功”审查网页

ed95bce4c37b971dc57b93a22123f4df.png

你就会发现头条“文章”加载的重大秘密

889c07a75c7e4d2d7db4b994848cbab0.gif

文章,没有cue你,收敛点

看这里

eac2b6a1b50de27630dfb3cb0da9c539.png

参数page_typeuser_id以及count固定不变

每次加载文章20

变化的是max_behot_timeas以及cp

念我Python大星纵横“爬者大陆”,

不禁感慨

这就是大厂小厂的差距,细节决定胜负

59a533993a859b6266b264317cf7fe91.png

首先看max_behot_time

我怀疑你是个时间戳的亚子

4184d7d5cb39b7e0f13194a9dd1b7611.png
7317aac6c2ef88b932ae090353641269.png

果然,不出我Python大星所料

2条链接中max_behot_time的值

就是第20篇文章的

发布时间(即第1条链接最后1篇文章的发布时间)

3764ac2b0408ffc465205b1047fe5fc4.png

接下来,看ascp

它哥俩除了前面几个字母保持一致

似乎没什么规律

bddecfd441d571f5c0c019f5d4ce149c.gif

我们知道网页一般是

HTML+CSS+JS组成

真相必然隐藏在JS

66828dae4efeabe3c8674bdec8d156ff.png
68f3af7997280c7ad455a779ca2b8b00.png

Python大星为你揭开这层神秘的“面纱”

如果你想知道

这串神秘的数字是怎么来的?

看过来

我已为你转换为Python代码

5a84285194257fbc2546ea2cd903a24e.png

输出函数可得到

{'as': 'A1455D8C1C1124F', 'cp': '5DCC21D2440FEE1'}

3f9a33b2b19a36dd21ad0446798b0667.png

Python大星头条“调戏”了

ascp哥俩参数

竟然不传也能获取数据!!!

5bb76b676ad7881e3a384e8088621d80.gif
52b26b9d99fe84c9969c490da6de21ec.png

格式化输出结果:

46206a1b3074aca194ce07457556d94d.png
aef8eecc9b35d42608054ba0e3307d41.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值