核心代码在于:
JS 片段的处理,去掉脚本标签,还有重定向 JS
对 JS 添加 return 获取 cookie 的语句
执行 JS,而且如果获取到的是无效的 Cookie ,再进行二次执行
UserAgent 信息很重要,一般的信息都无效,只有一个是有效的。
最终这个爬虫请求得到了完整的响应页面:
启示录
这个爬虫 521 攻破的核心是 UserAgent 信息get.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)");
诡异的是,只有 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322) 这一个是有效的,网站是以该信息为主要依据生成 Cookie 的,三次请求的这个头域必须相同。