java爬取新浪数据初学实例

1 篇文章 0 订阅

代码

// 这个函数后面要用到
public String post(String strUrl)
    {
        String result = "";
        try
        {
            StringBuilder document = new StringBuilder();
            URL url = new URL(strUrl);
            URLConnection urlConnection = url.openConnection();
            //urlConnection.setRequestProperty("contentType", "GBK");
            BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8));
            String line = null;
            while ((line = reader.readLine()) != null) document.append(line).append(" ");
            reader.close();
            result = document.toString();// 返回值
        }
        catch (Exception ex)
        {
            showDebug(ex.getMessage());
        }
        return result;
    }
// 这里可以另外放到另一个函数里面
String url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1&num=40&sort=symbol&asc=1&node=sw_sysh&symbol=&_s_r_a=init";
String resultStr = post(url);
System.out.println(resultStr);
try
{
    JSONArray obj = new JSONArray(resultStr);
    for (int i = 0; i < obj.length(); ++i) {
        for (Iterator<String> iterator = obj.getJSONObject(i).keys(); iterator.hasNext();){
            String key = (String)iterator.next();
            System.out.println(key + ": " + obj.getJSONObject(i).getString(key));
        }
        System.out.println("============================");
    }

}
catch (JSONException e)
{
    e.printStackTrace();
}

注意事项

  • 需要安装JSON库(可以使用maven解决)
  • 导入相关包(可以使用IDEA快捷键Alt+Enter解决)

遇到的问题

例如:字符串"\u2413"(随便输入的),利用java自带的replace和replaceAll函数似乎无法将\\转化为\,原因可能是java一定会将\\认作\,所以在字符串中实际上识别不了\\

解决方案

采用JSON库,将字符串转化为JSON格式即可解决。

//相应的代码
JSONArray obj = new JSONArray(resultStr);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值