如這個網址 http://hq.sinajs.cn/list=sh601006
打開顯示:var hq_str_sh601006="大秦鐵路,11.22,11.32,11.32,11.52,10.52,11.32,11.33,178528802,1982413539,4099952,11.32,11500,11.31,26500,11.30,11200,11.29,790172,11.28,117250,11.33,312356,11.34,269900,11.35,102250,11.36,144500,11.37,2015-07-15,15:03:04,00";
源代碼:var hq_str_sh601006="大秦鐵路,11.22,11.32,11.32,11.52,10.52,11.32,11.33,178528802,1982413539,4099952,11.32,11500,11.31,26500,11.30,11200,11.29,790172,11.28,117250,11.33,312356,11.34,269900,11.35,102250,11.36,144500,11.37,2015-07-15,15:03:04,00";
源代碼和用網頁打開是一樣的。
這是一只股票的資料,我想提取出來。
我用以下代碼提取源代碼顯示NULL
public static void main(String[] args) {
String strUrl = " http://hq.sinajs.cn/list=sh601006";
try {
// 創建一個url物件來指向 該網站鏈接 括號里()裝載的是該網站鏈接的路徑
// 更多可以看看 http://wenku.baidu.com/view/8186caf4f61fb7360b4c6547.html
URL url = new URL(strUrl);
// InputStreamReader 是一個輸入流讀取器 用于將讀取的位元組轉換成字符
// 更多可以看看 http://blog.sina.com.cn/s/blog_44a05959010004il.html
InputStreamReader isr = new InputStreamReader(url.openStream(),
"utf-8"); // 統一使用utf-8 編碼模式
// 使用 BufferedReader 來讀取 InputStreamReader 轉換成的字符
BufferedReader br = new BufferedReader(isr);
// 如果 BufferedReader 讀到的內容不為空
while (br.readLine() != null) {
// 則列印出來 這里列印出來的結果 應該是整個網站的
System.out.println(br.readLine());
}
br.close(); // 讀取完成后關閉讀取器
} catch (IOException e) {
// 如果出錯 拋出例外
e.printStackTrace();
}
}
請會的大神指點一下
uj5u.com熱心網友回復:
你你用delphi截取?提取字串?uj5u.com熱心網友回復:
搞定了沒!!!uj5u.com熱心網友回復:
function TFrmTip.GetGoodData(): Integer;
var
reStr, str_1: string;
idhtp1: TIdHTTP;
lst, lst2: TStringList;
i, nPos: Integer;
begin
Result := 0;
if FUrl = '' then Exit;
try
idhtp1 := TIdHTTP.Create(nil);
//'http://hq.sinajs.cn/list=s_sh600302,s_sz002313,s_sz300185'
reStr := idhtp1.Get(FUrl);
OutputDebugString(PChar(reStr));
if reStr = '' then Exit;
FList.Clear();
//'var hq_str_s_sh600302="標準股份,8.86,0.32,3.75,47130,4167";'
//#$A'var hq_str_s_sz002313="日海通訊,0.00,0.00,0.00,0,0";'
//#$A'var hq_str_s_sz300185="通裕重工,10.240,0.250,2.50,107719,10974";'#$A
lst := SplitString(reStr, ';');
for i := 0 to lst.Count-1 do
begin
nPos := Pos('=', lst[i]);
if nPos <> 0 then
begin
str_1 := Copy(lst[i], nPos+2, 100);
// OutputDebugString(PChar(str_1));
lst2 := SplitString(str_1, ',');
FList.Add(Copy(lst2[0], 1, 4)+' '+lst2[1]+ ' '+lst2[2]);
FreeAndNil(lst2);
end;
end;
FreeAndNil(lst);
Result := FList.Count;
except
FreeAndNil(idhtp1);
end;
if idhtp1 <> nil then FreeAndNil(idhtp1);
end;
uj5u.com熱心網友回復:
http://www.cnblogs.com/doorsky/p/4724737.html轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/81139.html
標籤:網絡通信/分布式開發
上一篇:請問delphi有沒有這樣的組件
