上个星期,测试直接用 requests 请求目标页面,headers 里面就设置了一下 user-agent、host,都能正常返回数据。这个星期再测试,发现返回了一堆乱码。测试的时候,请求次数并不多,加起来才几十次,换了一台机器直接测试,也是一样。于是上 burpsuite 抓包,返回包片段这样的:
一般来说,爬虫获取到乱码也不是什么很奇怪的事情,很多情况下是对方判定请求来源为爬虫后,故意整的,可这次让我觉得疑惑的是,上面这个截图的返回内容,在浏览器里面显示是正常的。也就是说,我把 burp 的拦截设置为 off,浏览器请求目标页面后,同样的返回数据,在 burp 的 response 看到的是乱码,但浏览器却能正常解析。
这是什么原理?返回内容里包含 js,检测是否浏览器环境?
这是首次遇到这种情况,还望有经验的指点一下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.