我正致力于从网站抓取信息:http://www.fatwallet.com
有许多重定向的URL。例如:http://www.fatwallet.com/ticket/store/A4C?s=storepage
被重定向到http://www.a4c.com/?siteID=.7WaaTN6umc-s1Ih0x_Q67n6r7gInoh6Ug
我想使用PHP找出重定向的网址
我用过" curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)
"。我知道它会自动重定向5
次。
然而,问题是,我得到的页面不是最后一页,而是它之间的页面。
curl_exec
返回:
HTTP / 1.1 302暂时移动服务器:Apache位置: www.fatwallet.com/interstitial/signin变化:接受编码
内容编码:gzip内容长度:20内容类型:text / html 日期:星期一,2015年4月13日12:03:19 GMT连接:保持活力
Set-Cookie:JSESSIONID = A9E28337052B56ADAC8451854A276210;路径= /; HttpOnlyHTTP / 1.1 302暂时移动服务器:Apache位置: www.fatwallet.com/interstitial/signin变化:接受编码
内容编码:gzip内容长度:20内容类型:text / html 日期:星期一,2015年4月13日12:03:19 GMT连接:保持活力HTTP / 1.1 200 OK服务器:Apache Cache-Control: no-cache,no-store,max-age = 0到期日:1969年12月31日星期三23:59:59 GMT
X-UA兼容:IE = edge,chrome = 1 Vary:User-Agent,Accept-Encoding
内容 - 语言:内容编码:gzip内容类型: text / html; charset = UTF-8 Content-Length:16949日期:星期一,4月13日 2015 12:03:20 GMT连接:keep-alive Set-Cookie: list_styles =网格;到期=周六,01-May-2083 15:17:27 GMT;路径= /
Set-Cookie:non_mem = f86c0692-826f-40f2-9fa1-1e2f9a957af8;过期=星期六, 20-May-2083 15:17:27 GMT;路径= / ............
似乎第三个重定向代码是" HTTP/1.1 200 OK
",但它不是最后一页。如果你查看http://www.fatwallet.com/ticket/store/A4C?s=storepage,你会理解我的意思。此外,无法在返回的页面中找到最终的URL
所以我的问题是,即使它收到HTTP/1.1 200 OK
,它是否能够使卷曲继续重定向?
还有另一种方法可以解决这个问题(使用snoopy或python)吗? 谢谢大家!
答案 0 :(得分:0)
似乎最后一次重定向是通过JS完成的,而不是本机HTTP的答案。您只需要更高级的爬虫程序来执行JS代码。
答案 1 :(得分:0)
只需看到第一个重定向页面的源代码(view-source:https://www.fatwallet.com/interstitial/signin),你会发现一些HTML元素中的最后一个,似乎有些JS代码正在读取这些值并做最后一个重定向