上回我们说到Python大星
在“试炼之路”历经九九八十一难
披荆斩棘

终于“立地成佛”
恭喜FPX成功攫取S9总决赛冠军
说错了!
!
!
恭喜Python大星晋级为“五星爬者”
节制好基本功,Python大星开车带你飞...
作为一名合格的“爬者”
我们要对浏览器功能如数家珍
以“今日头条” 主页为例
右键“审查”元素
Elements 选项卡中便会不雅观察到网页的源代码
右侧便是节点的样式
Network 选项卡
这里是在页面加载过程中浏览器与做事器之间发送要乞降吸收相应的所有记录。
记录中Type类型为xhr是Ajax要求
Ajax的核心是XMLHttpRequest工具
简称xhr
come on!
跟我单击第一条链接...
这是页面的原始的链接
在右侧可以不雅观察到其
Request Headers、URL 和
Response Headers 等信息
切换到Response选项卡
Python大星创造一个奇怪的征象:
显示的html代码并不是全部页面本身
原来这里便是用到了Ajax
其事理:
● 发送要求
● 解析内容
● 渲染网页
我们可以通过选中XHR选项来筛选Ajax要求的数据
在浏览器右侧Preview选项中
可以查看Ajax要求返回的处理过的内容,
比如Json格式展示的数据
可以展开方便查阅
Response选项:相应信息面板包含资源还未进行格式处理的内容,不能显示图片
网页中有很多场景利用了Ajax要求
Python大星带你玩转Ajax
进入Python大星头条主页
在“文章”选项栏中
我们可以看到Python大星的历史文章目录
我们往下翻阅
你会创造下面这一amazing征象
爱的魔力转圈圈。。。加载中。。。
用我上面传给你的“内功”去审查网页
你就会创造头条“文章”加载的重大秘密
文章,没有cue你,收敛点
看这里
参数page_type、user_id以及count是固定不变的
每次加载文章20条
变革的是max_behot_time、as以及cp
念我Python大星纵横“爬者大陆”,
不禁感慨
这便是大厂和小厂的差距,细节决定胜负
首先看max_behot_time
我疑惑你是个韶光戳的亚子
果真,不出我Python大星所料
第2条链接中max_behot_time的值
便是第20篇文章的
发布韶光(即第1条链接末了1篇文章的发布韶光)
接下来,看as和cp
它哥俩除了前面几个字母保持同等
彷佛没什么规律
我们知道网页一样平常是
由HTML+CSS+JS组成
原形一定隐蔽在JS中
Python大星为你揭开这层神秘的“面纱”
如果你想知道
这串神秘的数字是怎么来的?
看过来
我已为你转换为Python代码
输出函数可得到
{'as': 'A1455D8C1C1124F', 'cp': '5DCC21D2440FEE1'}
Python大星被头条“调戏”了
这as与cp哥俩参数
竟然不传也能获取数据!
!
!
格式化输出结果: