我正在写一个PHP脚本,搜索和使用卷曲读取HTML内容。如何确定页面是否为登录页面?
我想从内容和/或响应头,以确定目标页面是否需要登录后才能访问。
我明白,通常情况下,当匿名请求页面时,服务器会在需要重定向到登录页面。如我错了请纠正我。
我看了四周,有几个想法:
- 搜索
refresh
元标记或当HTTP返回代码是302,然后检查是否指的是URI与&action=login
(或类似) - 在有效页面的正文中搜索登录表单。 (我认识到在同一页上可能有内容和登录表单)
这些方法是否有效以及这些方法有多精确?我可以使用哪些其他技术/标志来识别/建议登录页面?或者,这是一个不可能完成的目标,准确率达到60-70%?
注意:我没有试图刮,只是发现它是否是一个登录页面。
以下是相关选项,仅作参考。
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
预先感谢您
我认为你的回答,视乎你要访问的站点。也就是说,你将不得不做一些preg_match语句来根据特定的数据来确定它。 http代码并不是登录页面是否有效的具体证据(例如任何页面都可以为302)。 – PiZzL3 2011-03-29 01:49:01
另外,现在很多网站在很多很多公开页面上都有登录表单。那么多页面并不一定是“主要的登录页面”。 – PiZzL3 2011-03-29 01:50:47
@ PiZzL3 - 是的,我承认这些问题。我想有没有简单的方法来确认内容和登录表单在同一页面上。无论如何,当你提到“具体数据”时,你究竟指什么? – JQonfused 2011-03-29 03:35:03