网站爬虫原理,基于浏览器点击行为还原可接口请求
爬虫这个词细节来说本质只有一件事把浏览器发出的请求换一种方式再发一遍问题不是怎么发请求而是请求是怎么构造的参数从哪里来的哪些字段不能少从一个点击动作开始打开一个网站例如一个列表页。执行一个动作如点击下一页或点击加载更多用浏览器抓请求按 F12 打开 DevTools切换到 Network勾选 XHR / Fetch点击页面按钮观察变化会出现一个新请求例如https://api.example.com/list?page2关键点这个请求就是爬虫入口。二、确认请求是否可以独立执行复制这个请求。用 curl 测试curl https://api.example.com/list?page2 \ -H User-Agent: ... \ -H Cookie: ...观察结果如果返回数据 → 请求完整如果返回错误 → 缺少参数三、找出哪些参数是必须的在 DevTools 中查看HeadersQuery 参数Request Body重点字段例如CookieAuthorizationToken删除法验证逐个删除字段再发请求 哪个删掉会失败 → 必须保留这个过程可以直接验证不依赖猜测。四、处理 Cookie 与登录态如果接口需要登录获取 Cookie登录网站打开 DevTools → Application查看 Cookie在请求中带上Cookie: sessionxxxx验证重新发送请求返回数据 → 登录态有效五、当接口被混淆或加密有些网站会出现参数加密请求签名用代理工具观察使用 Charles 或 Proxyman 或 Sniffmaster启动工具打开网页触发请求对比两次请求观察参数变化和 Header 变化判断方式如果同一个请求每次参数不同、但结果正常说明存在动态参数。定位参数生成位置打开 DevTools 的 Sources 面板。操作步骤找到请求对应 JS 文件搜索接口路径找到调用位置断点调试在发送请求前打断点查看参数生成过程、记录计算逻辑如果请求来自移动端时有些接口在 PC 上不可见例如App 专用接口H5 内嵌接口用 SniffMaster 抓取移动流量操作步骤用 USB 连接 iPhone解锁设备点击“信任此电脑”启动 SniffMaster抓包大师选择设备安装描述文件进入HTTPS 暴力抓包模式点击开始触发请求在手机上打开页面然后点击按钮可以看到 API 请求 、Header 、请求路径只抓目标接口移动端流量较多需要筛选。筛选方式点击选择 App勾选目标应用使用关键字过滤/list把抓到的请求转成代码例如用 Pythonimport requests url https://api.example.com/list?page2 headers { User-Agent: ..., Cookie: sessionxxxx } response requests.get(url, headersheaders) print(response.text)运行代码 返回数据 → 爬虫成功爬虫可以用什么工具工具作用DevTools找请求入口Charles / Proxyman分析参数变化SniffMaster获取移动端接口Python requests实现爬取如果一个接口满足可以独立请求而且参数明确重点是返回数据稳定那么久就可以认为已经完成抓包到爬虫的转换。本文章仅用于学习参考不得做违法行为。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2479335.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!