【发布时间】:2011-06-29 03:21:59
【问题描述】:
我已经设置了一个 curl 请求,该请求在许多站点上都能正常工作,其中大多数站点使用框架,并且如果使用的浏览器 bing 不支持框架,则返回带有相关消息的 noframes 标记,全部返回整个页面我使用 Domdocument 遍历的框架集。
但是,一个网站只会返回说明“您需要支持框架的浏览器”的页面。我正在传递 CURLOPT_USERAGENT, Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13,我尝试了许多用户代理定义并继续阅读尝试了各种其他 curl 选项,但没有成功。
我可以看到的网站之间的唯一区别是,它声明了 doctype: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 框架集//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
而工作正确的网站将 doctype 声明为: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 过渡//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
有问题的网址是:http://www.sainsburys.co.uk/groceries/index.jsp
我当然可以通过使用直接 url 指向框架集中的链接来访问我想要的框架集,但我宁愿从索引文件入口点开始,而不是硬编码指向我随时间变化的页面的链接。
任何有效的建议或 curl 脚本,将不胜感激。
顺便说一句:所收集信息的使用在可接受的使用政策范围内。
【问题讨论】:
-
您应该比较 Fiddler 中的请求。