gpt4 book ai didi

python - Web/Screen Scraping with Google App Engine - 代码在 python 解释器中工作,但在 GAE 中不工作

转载 作者:行者123 更新时间:2023-11-28 17:55:03 25 4
gpt4 key购买 nike

我想用 GAE 做一些网页抓取。 (无限校园学生信息门户,仅供引用)。此服务需要您登录才能进入网站。我有一些代码可以在普通 python 中使用 mechanize。当我得知无法在 Google App Engine 中使用 mechanize 时,我最终使用了 urllib2 + ClientForm。我无法让它登录到服务器,所以在摆弄 cookie 处理几个小时后,我在普通的 python 解释器中运行了完全相同的代码,并且成功了。我找到了日志文件并看到了大量关于在我的请求中删除“主机” header 的消息...我在 Google Code 上找到了源文件并且主机 header 位于“不受信任”列表中并从所有请求中删除用户代码。

显然,GAE 去掉了 I.C. 要求的主机头。确定让你登录哪个学校系统,这就是为什么它看起来像我无法登录。

我该如何解决这个问题?我无法在向目标站点提交的虚假表单中指定任何其他内容。为什么这首先会是一个“安全漏洞”?

最佳答案

App Engine 不会去除 Host header :它强制它成为基于您请求的 URI 的准确值。假设 URI 是绝对的,根据 RFC2616,服务器甚至不允许考虑 Host header 。 :

  1. If Request-URI is an absoluteURI, the host is part of the Request-URI. Any Host header field value in the request MUST be ignored.

...所以我怀疑您误诊了问题的原因。尝试将请求定向到您控制的“虚拟”服务器(例如,您的另一个非常简单的应用程序引擎应用程序),以便您可以查看来自您的 GAE 应用程序的请求的所有 header 和正文,以及它是如何出现的来自您的“普通 python 解释器”。您通过这种方式观察到什么?

关于python - Web/Screen Scraping with Google App Engine - 代码在 python 解释器中工作,但在 GAE 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com