从sina获取所有股票代码 http://vip.stock.finance.sina.com.cn/q/go.php/vIR_CustomSearch/index.phtml?p=77&sr_p=-1
public class SinaStock {
public static String db = "D:\\workspace\\stock\\data\\sina-stock-codes-2.csv";
public static final int COLUMNS = 33;
public static List<String> codes = new ArrayList<String>();
static {
File in = new File(db);
if (!in.exists()) {
// 从网络获取
if (codes.size() < 1)
try {
codes = getAllStackCodes();
} catch (IOException e) {
e.printStackTrace();
}
} else {
// 从本地获取
if (codes.size() < 1)
try {
codes = getAllStockCodesFromLocal();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 解析一组股票代码字符串 把code中包括的所有股票代码放入List中
public static List<String> handleStockCode(String code) {
List<String> codes = null;
int end = code.indexOf(";");
code = code.substring(0, end);
int start = code.lastIndexOf("=");
code = code.substring(start);
code = code.substring(code.indexOf("\"") + 1, code.lastIndexOf("\""));
codes = Arrays.asList(code.split(","));
return codes;
}
// 返回的值是一个js代码段 包括指定url页面包含的所有股票代码
public static String getBatchStackCodes(URL url) throws IOException {
URLConnection connection = url.openConnection();
connection.setConnectTimeout(30000);
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line = null;
StringBuffer sb = new StringBuffer();
boolean flag = false;
while ((line = br.readLine()) != null) {
if (line.contains("<script type=\"text/javascript\">") || flag) {
sb.append(line);
flag = true;
}
if (line.contains("</script>")) {
flag = false;
if (sb.length() > 0) {
if (sb.toString().contains("code_list") && sb.toString().contains("element_list")) {
break;
} else {
sb.setLength(0);
}
}
}
}
if (br != null) {
br.close();
br = null;
}
return sb.toString();
}
// 获取新浪78也的所有股票代码
public static List<String> getAllStackCodes() throws IOException {
System.out.println("Start getAllStackCodes...");
List<String> codes = new ArrayList<String>();
int i = 1;
URL url = null;
// 新浪 股票 好像目前为止就 77页
for (; i < 78; i++) {
url = new URL("http://vip.stock.finance.sina.com.cn/q/go.php/vIR_CustomSearch/index.phtml?p=" + i +"&sr_p=-1");
String code = getBatchStackCodes(url);
System.out.println("code=" + i);
codes.addAll(handleStockCode(code));
}
saveStockCodes(codes, db);
return codes;
}
// 把新浪77页的所有股票代码存入本地文件
public static void saveStockCodes(List<String> codes, String fileName) throws IOException {
// 将所有股票代码存入文件中
// System.out.println("Start saveStockCodes...");
File out = new File(fileName);
if (!out.exists())
out.createNewFile();
BufferedWriter bw = new BufferedWriter(new FileWriter(out,true));
for (String code : codes) {
bw.write(code);
bw.newLine();
}
if (bw != null) {
bw.close();
bw = null;
}
}
public static List<String> getAllStockCodesFromLocal() throws IOException {
List<String> codes = new ArrayList<String>();
File in = new File(db);
if (!in.exists())
throw new IOException("指定数据文件不存在!");
BufferedReader br = new BufferedReader(new FileReader(in));
String line = null;
while ((line = br.readLine()) != null) {
codes.add(line);
}
// 删除最后一个空行
codes.remove(codes.size() - 1);
if (br != null) {
br.close();
br = null;
}
return codes;
}
}
相关推荐
本文将深入探讨如何使用Java语言从新浪获取股票信息,包括理解数据格式、解析数据以及利用这些信息进行进一步的处理或展示。 ### 一、理解新浪股票API 新浪财经提供了免费的股票数据接口,可以用来获取股票的实时...
- Java:可以利用JQuantlib、Quandl Java API等工具进行股票代码查询和行情获取。 - JavaScript:使用Alpha Vantage或IEX Cloud的API可实现股票代码查询。 6. 数据分析与投资决策: - 通过查询股票代码,投资者...
【标题】"股票价格查询 java swing 小程序"是一个基于Java Swing开发的桌面应用程序,它实现了用户通过输入股票代码查询股票价格的功能。该程序利用了新浪提供的股票接口,能够获取实时或历史的股票数据,并在用户...
【Java股票实时查询小软件】是一款利用JavaFX技术构建用户界面,通过访问新浪博客的URL获取股票实时数据的简易应用。这款软件的核心功能是展示股票信息,并允许用户点击每条股票数据来查看对应的股价走势。下面我们...
再者,标签中的“新浪”提示我们,该项目获取股票数据是通过新浪的API。新浪作为知名的财经信息提供者,提供了公开的股票数据接口供开发者使用。通过这些接口,应用可以实时获取到最新的股票数据,如开盘价、收盘价...
新浪提供了免费的股票数据接口,用于获取股票的实时行情。下面以大秦铁路(股票代码:601006)为例介绍具体的使用方法: - **访问地址**:`http://hq.sinajs.cn/list=sh601006` - **返回结果示例**: - "大秦铁路...
- **参数**:根据接口要求传递的股票代码、时间范围等信息。 - **请求方法**:常见的有GET和POST,GET常用于获取数据,POST可能用于提交数据。 - **返回格式**:接口返回的数据格式,可能是JSON、XML或CSV等。 在...
以上代码会返回浦发银行(股票代码:sh600000)的最新行情数据。 请注意,调用API时需遵守新浪的相关规定,避免频繁请求或超出使用限制,否则可能导致账号被封禁。此外,数据的安全性也很重要,不要泄露API密钥,并...
用户可以输入股票代码或名称来查询特定股票的最新价格、涨跌幅、交易量等关键数据。 2. **使用方法**:用户启动应用后,可以看到简洁的主界面,这里显示了热门股票的概览。通过搜索功能,用户可以查找并查看具体...
在Demo源码中,开发者通常会设置函数或类来调用这些接口,例如获取股票代码、股票名称、开盘价、收盘价、最高价、最低价以及成交量等关键数据。这些数据对于股票投资者进行数据分析和决策至关重要。 源码的核心部分...
SH系列股票通常指的是股票代码以60开头的A股股票,这些股票代表了中国的主板市场。通过实时查询功能,用户可以随时获取最新的股票价格、涨跌幅、成交量等关键信息,帮助投资者做出决策。 为了实现股票数据的实时...
在这个项目中,开发者需要向新浪服务器发送HTTP请求,请求中包含股票代码,然后服务器会返回相应的股票信息,如开盘价、收盘价、最高价、最低价以及成交量等。这些数据随后会在应用的界面上显示出来。 关于股票投资...
新浪财经 雪球 上交所 深交所 东方财富 :exclamation_mark: :backhand_index_pointing_right:本项目初衷纯属技术交流,勿作商业用途 :exclamation_mark: ! 实现功能 :check_box_with_check:指数更新 :check_box_...
1. 数据获取:新浪股票数据的获取主要依赖于新浪提供的API接口。开发者需要熟悉这些接口的使用方法,包括请求格式、参数设置以及如何解析返回的JSON或XML数据。此外,可能还需要处理不同时间周期(如分钟、日、周)...
8. **编程语言与技术**:虽然未直接提供,但开发此类应用通常会用到编程语言如Python、C#或Java,配合GUI库(如Qt、WinForms或WPF)创建用户界面,并可能使用第三方API来获取股票数据,如雅虎财经、新浪财经等提供的...
3. **数据字段**:不同的API可能会提供不同的数据字段,如股票代码、开盘价、收盘价、交易量、涨跌幅等。开发者需要根据需求选择合适的字段。 4. **频率限制**:为防止滥用,API通常会对请求频率进行限制。超过限制...
2. **API接口**:许多金融数据提供商如雅虎财经、Google财经、新浪财经等都提供了API,开发者需要理解如何调用这些API来获取股票数据。 3. **数据解析**:股票数据通常以JSON、XML或CSV格式返回,理解这些数据格式...
这可能涉及到SQLite这样的轻量级数据库,用于保存大量的股票数据,包括股票代码、开盘价、收盘价、最高价、最低价、成交量等关键指标。 其次,软件需要具备数据显示的功能。用户界面通常会展示K线图(阴阳烛图),...
stock记录股票 股票接口新浪股票接口 沪市是sh开头 深市是sz开头腾讯股票接口 (日K) 18代表年份 (周k)由于是内部接口调用,并未考虑SQL注入问题完成定时粗体斜体引用代码=删除线=*列表先这样吧到时候找个...
7. 实时更新:如果需要进行实时交易,需要设置定时任务,定期执行条件选股代码,获取最新的股票列表。 8. 风险控制:条件选股仅仅是交易决策的一部分,还需要结合风险管理策略,如止损、止盈、资金管理等。 在实际...