0

我想将使用 Apache HttpClient 的抓取服务放到云端。我读到 Google App Engine 可能会出现问题,因为它是直接网络访问和线程创建被禁止的。其他云托管服务提供商怎么样?有没有人体验过 Apache HttpClient + 云?

4

2 回答 2

2

AppEngine 具有线程直接网络访问(仅限 HTTP)。有一种解决方法可以使其与 HttpClient 一起使用

此外,如果您计划并行使用许多解析任务,您可以查看Task Queue甚至mapreduce

顺便说一句,GAE 中有一个“错误功能”,您无法在请求中完全设置自定义用户代理标头 - GAE 总是在其末尾添加“AppEngine”(这会中断对某些站点的请求 - 尤其是 iTunes)。

于 2012-11-08T08:05:43.057 回答
0

当然可以从 CloudFoundry 创建线程并访问其他网站,只是每个进程的时间有限。例如,如果您查看http://rack-scrape.cloudfoundry.com/,它是一个简单的机架应用程序,可以检查来自 Google.com 的“a”标签;

require 'rubygems'
require 'open-uri'
require 'hpricot'

run Proc.new { |env| 

  doc = Hpricot(open("http://www.google.com"))
  anchors = (doc/"a")

  [200, {"Content-Type" => "text/html"}, [anchors.inspect]]
}

至于 Apache HttpClient,我没有这方面的经验,但我知道它不再维护。

于 2012-11-07T15:52:57.273 回答