非阻塞socket 爬虫代码

qq675927952 2011-05-05 12:34:10
要爬http://feeds.delicious.com/v2/rss/tag/%E8%80%90%E5%85%8B?count=100这个页面,
如何用非阻塞的 socket来 爬,求高手指点..最好有解释...

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;

public class SocketNonBlock {
public static SocketChannel createSocketChannel(String hostName, int port)
throws IOException {
SocketChannel sChannel = SocketChannel.open();
sChannel.configureBlocking(false);
sChannel.connect(new InetSocketAddress(hostName, port));
sChannel.finishConnect();
return sChannel;
}

public static void main(String[] args) {
try {

// 创建链接
SocketChannel sChannel = createSocketChannel("feeds.delicious.com", 80);
ByteBuffer buffer = ByteBuffer.allocate(8 * 1024);
// 可以通过判断是否连接,在链接成功建立前做一些其它的事情
while (!sChannel.finishConnect()) {
System.out.println("等待非阻塞连接建立....");
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println(sChannel.isConnected());


} catch (Exception e1) {
}
}
}



上述代码 就是只能 connect不知道 怎么获取 该网页内容.求好心人帮忙.....
...全文
224 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhuzai0823 2011-12-14
  • 打赏
  • 举报
回复
lz解决了吗,我也遇到这个问题,求解啊 457014050@qq.com 谢!!
  • 打赏
  • 举报
回复
如果你这样弄的话,那你要做的不是怎么写爬虫,而是怎么去实现 HTTP 协议客户端!
lvhongfen 2011-05-06
  • 打赏
  • 举报
回复


既然能连接上,就可以获取网页的内容。
我们总监也在做爬虫,听他说好像是根据网页源码的标签来抓取内容的……

要不你分析一下它的标签,试试看
fly_cool 2011-05-05
  • 打赏
  • 举报
回复
帮忙顶一下,我最近也在看socket

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧