我正在尝试使用Google App Engine的urlFetch服务获取网址并实施代理网站。像Twitter和Facebook这样的网站看起来就像是缺少样式表一样,甚至谷歌都缺少谷歌的标识,但雅虎打开的一切都很好,我无法理解为什么。
答案 0 :(得分:1)
当您使用urlfetch时,它会获取页面的HTML,而不会获取图像,CSS,JavaScript或任何其他资源。
雅虎看起来很好,大概是因为他们使用绝对网址(例如http://www.yahoo.com/image.png)指定了他们的图片和CSS,所以当你的urlfetch'd页面显示时,它包含来自yahoo.com的完整图片网址。请注意,当有人无法访问yahoo.com时,这些图片也不会出现在您的代理页面上。
编辑:看起来雅虎将他们的CSS内嵌到HTML页面本身,这可以解释为什么它可以在你提取的副本中运行。
Google没有CSS /图片,因为他们的CSS /图片被指定为相对网址(例如/image.png),而您的代理在/image.png没有图片
您必须解析urlfetch的页面内容,以查找需要获取和代理的图像和CSS。请务必处理/resource.png等相关网址以及www.foo.com/resource.png等绝对网址。