PHP 爬取网页的时候遇到JS定时跳转


抓取到的网页内容为


 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-store" />
<meta http-equiv="Connection" content="Close" />
<script>
function JumpSelf()
{   
    self.location="/?WebShieldSessionVerify=PIHIFboME3yzpTl2p9T2";
}
</script>
<script>setTimeout("JumpSelf()",700);
</script>
</head>
<body>
</body>
</html>

爬取程序得到状态码是200
用fiddler抓取浏览器链接发现状态码是302
header中有Location: /(e24a2c455vo1xe45nlqfme55)/default2.aspx

是不是因为curl爬取到JS页面因为是定时700毫秒跳转所以curl就以为没有跳转就停止了?这该如何解决?用正则去匹配吗?

php curl 数据抓取 JavaScript

拔哥小树杈 10 years, 7 months ago

分2步, 第一步抓你这个页面,提取js中的链接。 第二步抓取js中链接对应页面。
可能要注意在多个页面中同步cookie. 具体可以查手册里 curl cookieJar cookieFile。

你们就好啦 answered 10 years, 7 months ago

因为抓取程序不是浏览器,并不会执行script内的代码

虚无交响曲 answered 10 years, 7 months ago

Your Answer