这是代理和插件开发人员的问题。
当涉及特定网站时,通常的心态是“他们进行了更改,这会破坏我们的插件;我们会更改逻辑以使其再次运行”。
但是,如果对方也担心这个怎么办?如果我们想为一个代理友好的网站编译一套指南和最佳实践进行网站开发,你建议应该去做什么?想想你必须破解的坚果。你还记得那些你希望网站开发者以不同方式完成某项功能的时刻吗?怎么样?
由于这涉及编码,我认为不应该去服务器故障。
编辑: 在阅读了Pekka的评论后,我觉得我应该添加更多背景信息。
有一些Web代理脚本,例如glype和PHProxy。由于脚本应该处理许多未知条件,因此无法为许多站点提供服务。因为这些网站的数量是压倒性的,所以尝试使代理的内部逻辑足够复杂以处理这种巨大的变化是没有意义的。这是插件派上用场的地方。 main或 base 脚本实现了一种在每个站点基础上调用插件代码的机制。
所以,如果代理无法提供服务让我们说facebook.com,顺便提一下,那么对挑战感兴趣的编码人员会进行一些研究和调试,找出链条被破坏的地点和原因以及应该是什么完成解决问题。编码器将其修复程序实现为该特定站点的插件,用户可以将插件放入其插件目录中。
但也会发生网站上的某些内容发生变化,而这种变化会导致插件再次崩溃。因此,赶上网站的最新变化是一个持续的匹配。具有讽刺意味的是,许多网站开发人员既不知道也不关心他们的设计决策可能对内容的代理服务能力产生的影响。但有些网站有充分理由关注访问者通过代理访问其内容的能力。不想在这里搞政治,所以我留给你猜猜为什么这对某些网站来说可能很重要。
这个问题试图利用代理和插件作者的集体知识和经验,制定一套使网站代理友好的指南。
我没有标记问题php,因为它主要涉及网站的输出,而不是你如何生成它。但决定对其进行标记,因为它会提高问题的可见性,标签也可以在目标受众的基础上进行验证。我也在制作这个社区维基,所以如果你觉得应该删除php标签,那就这样做。
答案 0 :(得分:1)
这是一个有趣的问题,我认为没有一个好的通用解决方案。基本上,您希望您的网站内容可由某些第三方转换,而您无法控制并且可能不知道转换。
解决此问题的传统方法是使用已发布的API,允许第三方以受控方式查询所需数据,而不依赖于屏幕抓取。 API通常只会公开一部分功能,通常是因为该网站要求用户查看网页以产生广告收入(或其他一些收入)。
您可以使用HTML API生成非常简单的页面,并使用Javascript和CSS使页面更加用户友好。但是,这可能不适合大多数网站。但jQuery和其他人大肆宣扬的“渐进增强”方法也是如此:提供基本的,语义的内容,并通过JS和CSS添加功能和趣味。
您可以使用微格式来使某些页面内容更易于访问。您应该使用语义HTML并在页面元素上放置大量的类和ID,以便插件作者可以找到他们需要的相关内容。
令我感到震惊的是,无论这些代理需要学习如何至少解析一次页面。您可以记录该过程(可能会发布一个或两个插件)。
我不认为您在发布新版本的网站时可以避免强制插件作者重新编码。你可以建立一个测试期的政策,网站的旧版本和新版本都可用,这将使插件作者有机会更新他们的插件而不会给用户带来服务中断。
答案 1 :(得分:1)
我不确定您是否关注此问题,但目前我只记得在代理友好网站上工作时应该注意的两件事。一个是标题,可以影响在代理后面访问的网站,另一个是IP检测。缓存控制头(公共/私有)和其他头可以影响用户的速度和隐私。检测到IP可以代理而不是用户。所以,应该牢记这些事情。