我想用GAE做一些网页抓取。(无限校园学生信息门户,fyi)。此服务要求您登录才能进入网站。 我有一些在普通python中使用mechanize的代码。当我得知我不能在googleappengine中使用mechanize时,我最终使用了urllib2+ClientForm。我无法让它登录到服务器,所以在处理cookie几个小时后,我在一个普通的python解释器中运行了完全相同的代码,它成功了。我找到了日志文件,看到了大量关于在我的请求中剥离“host”头的消息。。。我被用户从一个不可信的源代码列表中删除了。在
很明显,我不能确定哪个系统需要登录。在
我该如何解决这个问题?我不能在提交给目标站点的假表单中指定任何其他内容。为什么这会是一个“安全漏洞”?在
appengine不会剥离主机头:它会根据您请求的URI强制它成为一个准确的值。假设URI是绝对的,服务器甚至不允许考虑主机头,每RFC2616:
…所以我怀疑你是在误诊。尝试将请求定向到您控制的“虚拟”服务器(例如,您的另一个非常简单的app engine应用程序),这样您就可以查看来自GAE应用程序的请求的所有头和主体,以及它是如何来自“普通python解释器”的。你这样观察什么?在
相关问题 更多 >
编程相关推荐