今早刷朋友圈看到有人问创造营2020名单咋查,我寻思这不挺简单么?撸起袖子就开干,结果折腾到午饭时间才整明白。踩过的坑全写这儿了,你们直接抄作业!
第一步:傻乎乎打开百度
掏出电脑先搜“创造营2020成员名单”,跳出来一堆官网链接。点开看了好几遍,全是往期新闻和选手海报,翻到底裤都要掉了也没找着完整名单。
第二步:抓包工具硬上
我这暴脾气直接开了Python准备抓官网数据。打开脚本往里怼requests模块,结果傻眼了!官网数据全是动态加载的,源代码里连根毛都没有!
此时犯了个致命错误:- 以为所有网站都能直接扒代码
- 没看页面元素就瞎写爬虫
- 耗了半小时对着空白数据骂街
第三步:发现浏览器玄机
瘫椅子上刷手机时突然开窍,抄起浏览器就按F12键调出开发者工具。刷新选手页面的瞬间,眼睛盯死Network标签页里滚动的请求。终于逮到个可疑的请求:
关键操作:
- XHR类型请求挨个点开看
- 找带“member”“list”字眼的链接
- 发现返回格式是json不是网页
第四步:破解数据封印
双击那个请求看详情,在Headers里找到真实API地址,Response标签页直接显示结构化数据!选手名字、公司全整齐码着,连淘汰日期都有:
- 张艺凡(北京时代峰峻)2020-07-04淘汰
- 陈卓璇(天浩盛世)2020-07-04晋级
- 赵粤(丝芭传媒)2020-07-04晋级
顺手在Preview模式下展开数据树,三百多行选手信息直接铺满屏幕,当场笑出猪叫!
最终秘诀总结
重点就三招:
- 别信表面网页!动态数据都在接口里
- 浏览器开发者工具比爬虫好用十倍
- 认准Network里XHR类型的请求
搞完这波操作,下午四点才吃的午饭。不过值了!以后再查选秀名单直接F12走起,五分钟轻松解决。