2012-07-23 53 views
2

我想解析this pageC++如何得到它的索引位置後的子串

string str2 ("<span class=\"time_rtq_ticker\"><span id=\"yfs_l10_usdsgd=x\">"); 
    size_t found; 

    // different member versions of find in the same order as above: 
    found=sdata.find(str2); 
    if (found!=string::npos) 
    cout << "first 'needle' found at: " << int(found) << endl; 

我如何才能獲得匯率後,我得到「針」的位置,這是模式,我希望它停止後

解析對不起我這樣做對我的一個小項目,不是商業,只是一些微型工作

+0

雅虎不爲此提供Web服務嗎?這將更簡單 – 2012-07-23 16:16:15

回答

2

std::string.substr(pos,npos)會給你從POS的std::stringfound你的情況)長度爲npos。要找出長度,您可能需要查找字符串「<」(下一個html標記的開始處)並減去。

+0

@Baoky:如果有用,你可以將答案投給它;) – steffen 2012-07-24 09:39:36

3

不雅虎提供這種Web服務嗎?這會更簡單。檢查:

http://developer.yahoo.com/finance/company.html

+0

,1公司財務,我想要的是貨幣eurusd等 – 2012-07-23 16:28:24

+0

@Baokychen如果您在網站上搜索「webservice」,你會發現它們很多。你只需要找到合適的人。使用webservice會使您無法在每次更改頁面源代碼時重新編碼 – 2012-07-23 16:36:20

1

我覺得你還是使用由雅虎財經提供的API由@Adel布特羅斯說,要不你至少應該使用全在HTML解析器類,如果要分析的事情像這樣你自己。

有許多變化,但實質上它們會讀取標籤併爲您提供數據內容 - 您只需添加一些處理程序即可捕獲感興趣的標籤。每個解析器的工作方式都有所不同,並具有不同的優勢。速度或簡單,但他們非常直接,會更穩定?比你在做什麼。

下面是關於選擇C++ HTML解析器(但看起來不穩定)的一個有趣的SO。就個人而言,我只需要對python進行外部調用來解析它,或者創建一個可以調用的小型java EXE來將下載的網頁解析爲更有用的格式(我更喜歡python,但更多的人知道Java,我也會工作)。

https://stackoverflow.com/questions/489522/library-recommendation-c-html-parser

+0

假設html代碼不會更改,是否可以解析我的內容? – 2012-07-23 16:31:42

相關問題