利用java的net包来实在数据采集的功能

最近有好多朋友问我,数据抓取用java怎么做,就是每天把新浪的内地新闻频道的新闻前20条,抓到自己的网站或系统里,今天我统一在这里提供一个简单的例子,由于在这个过程中还需要解析html字符串,所以,我只教朋友们抓数据,至于怎么处理在本文不考虑。接下来看例子:

package net.xinhudong.html;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class htmlRequest {
    /**
    * @param args
    * @throws MalformedURLException 
    */
    public static void main(String[] args) throws Exception{
        URL url = new URL("http://roll.news.sina.com.cn/news/gnxw/gdxw1/index.shtml"); 
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(5 * 1000);
        InputStream inStream =  conn.getInputStream();//通过输入流获取html数据	
        byte[] data = readInputStream(inStream);//得到html的二进制数据
        String html = new String(data);
        System.out.println(html);//在控制台输入得到的html代码
    }
    public static byte[] readInputStream(InputStream instream) throws Exception{
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[]  buffer = new byte[1204];
        int len = 0;
        while ((len = instream.read(buffer)) != -1) {
            outStream.write(buffer,0,len);
        }
        instream.close();
        return outStream.toByteArray();    
    }
}            

运行这个程序后,可以在控制台看到上面网址中的页面源代码,在源代码中可以找到<!-- 列表 begin -->和<!-- 列表 end -->的注释标签,我们利用这些注释标签来对html进行截取,然后从中获得到<li>,把<li>中的内容一条一条的放在一个List中,然后保存这个List到数据库就完成了数据采集的功能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏强仔仔

SpringBoot中实现邮件找回密码的功能

今天给大家介绍一下很常用的一个功能,就是邮件找回密码功能。找回密码一般会有:1.邮件找回密码、2短信找回密码、3问题找会密码。 关于邮件找回密码的原理思想为: ...

2388
来自专栏dalaoyang

SpringBoot使用validator校验

1644
来自专栏皮皮之路

【Spring】Spring boot多数据源历险记

2196
来自专栏滕先生的博客

CAAnimation 核心动画概念一、 CAAnimation二、 CAPropertyAnimation三、CABasicAnimation(基本动画)CAPropertyAnimation的子类

3429
来自专栏dotnet core相关

WCF入门 (13)

  公司略无聊,周三前同事推荐跳槽,于是会去更新了一下简历,突然发现,快一年了,我竟然想不出我可以往简历上添加点什么值得自豪的东西。下午和小伙伴聊了一会天,他告...

512
来自专栏QQ音乐技术团队的专栏

一个循环动画引起的内存泄露问题总结

本文主要记录项目中遇到的一个内存泄露问题:由于一个循环动画引起的内存泄露,并且这个问题也是偶现的,在后面的隐藏问题里会说明。

3082
来自专栏皮皮之路

【Spring】Spring boot多数据源历险记

39616
来自专栏程序猿DD

Spring Security 入门(四):自定义-Filter

前文导读 - Spring Security入门(一):登录与退出 - Spring Security入门(二):基于数据库验证 - Spring Securi...

2984
来自专栏hotqin888的专栏

golang-fullcalendar拖曳drop、resize的坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

851
来自专栏大内老A

通过一个模拟程序让你明白ASP.NET MVC是如何运行的

ASP.NET MVC的路由系统通过对HTTP请求的解析得到表示Controller、Action和其他相关的数据,并以此为依据激活Controller对象,调...

2686

扫码关注云+社区