- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个蜘蛛类,它根据用户请求蜘蛛网站的内容。每次搜索都会加载大约 30 个网站,从中搜索信息,然后将这些信息标准化。
我已经使用 CURL 在 PHP 中编写了这个,因为 PHP 缺乏多任务处理我想切换到 Java(我知道多进程 curl 不适合我的需求)。我需要一个可以 POST/GET、接收和设置 cookie 以及修改 HTTP header 的 http 客户端。
我发现 HtmlUnit 看起来不错,但也超出了我的需求,而且由于包相对较大,我每分钟都会收到很多 hundread 请求,所以我不希望有一个过度杀伤力的解决方案来降低我的服务器速度。
您认为这会成为一个问题吗?您是否有其他建议来替换 Java 中的 CURL?我应该使用 Java CURL 绑定(bind)吗? 这是效率和服务器负载的问题。
最佳答案
也许看看Apache Http Client ?
您可以为每个线程创建一个 HttpClient 并使用它来执行您的请求
while (running) {
HttpClient client = new DefaultHttpClient();
HttpGet GET = new HttpGet("mydomain.com/path.html");
HttpResponse response = client.execute(GET);
// do stuff with response
}
更好的是,如果您在请求之间重复使用 HttpClient,它会记住在之前的响应中发回的 cookie,并自动将它们应用到您的下一个请求。从这个意义上说,单个 HttpClient 模拟一个 http 对话。
如果你这样做了
client.execute(GET1);
// cookies received in response
client.execute(GET2);
// the second get will send the cookies back received from GET1 response.
然后您可以查看 Java 的 ExecutorService,它可以轻松放置蜘蛛作业并运行多个线程。
关于Java:HtmlUnit 效率 relacing PHP CURL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6186312/
我需要替换 .doc 文件的 HWPFDocument paragraph 文本,如果它包含使用 java 的特定文本>。它取代了文本。但是该过程以一种奇怪的方式写入输出文本。请帮助我纠正这个问题。使
我有一个蜘蛛类,它根据用户请求蜘蛛网站的内容。每次搜索都会加载大约 30 个网站,从中搜索信息,然后将这些信息标准化。 我已经使用 CURL 在 PHP 中编写了这个,因为 PHP 缺乏多任务处理我想
我是一名优秀的程序员,十分优秀!