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