1

我编写了一个 Python 应用程序,它使用 urllib2 库发出 Web 请求,之后它会抓取数据。我可以将其部署为 Web 应用程序,这意味着所有 urllib2 请求都通过我的 Web 服务器。由于许多用户的大量 Web 请求,这导致服务器 IP 被禁止的危险。另一种选择是创建一个我不想做的桌面应用程序。有什么方法可以部署我的应用程序,以便我可以通过客户端获取我的网络请求。一种方法是使用 Jython 创建一个小程序,但我读过 Java 小程序只能向部署它的服务器发出 Web 请求,而规避这种情况的唯一方法是创建一个引导我们返回的服务器端代理关于服务器ip被禁止的问题。

这听起来像是不可能的情况,我可能最终会创建一个桌面应用程序,但我想我会问是否有人知道替代解决方案。

谢谢。

4

3 回答 3

1

您可能可以使用由作为客户端一部分的 JavaScript 发出的 AJAX 请求。

  • 使用服务器→客户端通信来发出命令和必要的数据以发出请求
  • …然后使用从客户端到第 3 方服务器的 AJAX 通信。
于 2010-05-04T06:41:30.100 回答
1

您可以使用已签名的 Java 小程序,它们可以使用 Java 安全机制来启用对任何站点的访问。本教程准确地解释了你必须做什么:http ://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html

从 Flash 小程序中也可以做到这一点。Javascript 也仅限于已发布的站点,并且不允许签名或像这样的安全异常,AFAIK。

于 2010-05-04T10:03:27.780 回答
0

这取决于您打算执行的“抓取”形式:

  • 您在运行对第三方站点的 AJAX 调用时可能会遇到问题。请参阅通过 AJAX 和 javascript 进行屏幕抓取
  • 另一种方法是在服务器端进行,但要缓存结果,以免不必要地访问第三方服务器。

在谷歌代码上查看 diggstripper。

于 2010-05-04T08:17:26.893 回答