想从sina财经提取上市公司财务数据。
方法是通过扫描对应公司的财务数据页面,然后提取财务指标数据,并插入到数据库中,页面例如:
http://money.finance.sina.com.cn/corp/go.php/vFD_FinancialGuideLine/stockid/600000/displaytype/4.phtml现在的问题是不知道用什么方法提取网页上面的数据

解决方案 »

  1.   

    这是VB.Net的,只能参考:
    http://www.mndsoft.com/blog/article.asp?id=1051
      

  2.   

    创建一个表,注意一下字段数量和类型,以下代码将该页中的数据转成SQL插入语句.
    Private Sub Form_Load()
        Me.WebBrowser1.Navigate2 "http://money.finance.sina.com.cn/corp/go.php/vFD_FinancialGuideLine/stockid/600000/displaytype/4.phtml"
    End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        'Debug.Print "完成"
        Dim doc As Object
        Dim table As Object
        Dim row As Object
        Dim cell As Object
        Dim strSQL As String
        Static strData As String
        
        If Len(strData) = 0 Then
            Set table = Me.WebBrowser1.Document.getElementById("BalanceSheetNewTable0")
            For Each row In table.rows '遍历表格中的每一行
                strSQL = "Insert into 表名 Values("
                For Each cell In row.cells
                    strSQL = strSQL & cell.innerText & "," '数据之间用","来间隔
                Next
                strSQL = Left(strSQL, Len(strSQL) - 1) '去掉最后一个间隔符
                strSQL = strSQL & ")"
                If InStr(strSQL, ",") > 0 Then
                    'cn.Execute strSQL
                    Debug.Print strSQL
                End If
                strData = strSQL & vbCrLf '加上回车换行符
                
            Next
            strData = Left(strData, Len(strData) - 2) '去掉最后一个换行符
        End If
    End Sub
      

  3.   

    参考
    http://www.is21.cn/article.asp?id=251
      

  4.   

    WebBrowser1_DocumentComplete 中再加 webbrower1.Navigate2 "",将那个600000递增
      

  5.   

    我也来写一点,我的网站上的数据全是采集别人网站上的。
    用的是INET控件hunzi1 = Inet.OpenURL("http://news.sina.com.cn/china/")hunzi1就是目标网页的数据了我的网站上的音乐和新闻代码就是用INET控件采来的.http://www.tf163.com
      

  6.   

    由于WebBrowser是使用多线程异步下载的,因此直接使用循环时,后一个URL会中止前一个URL的Navigate,因此,你在循环中需要判断WebBrowser的状态,同时还要设置一个计时器,如果WebBrowser的状态为Busy,则计时器置0,否则,当超过规定的时间内WebBrowser仍然处于空闲,则基本可以断定该URL已Navigate完毕,从而转入下一个URL的导航。
    注意,不能直接判断WebBrowser的状态信息为“完成”,因为IFrame技术会使WebBrowser在一个页面里显示几次“完成“信息”。
      

  7.   

    个人觉得用WebBrowser写网页的采集程序不是很方便,用INET的话给我感觉占用资源要少一些。我的网站上的新闻就是全天24小时采集新浪的。
      

  8.   

    我也是用INET,正则表达式也是网页数据采集绝对不可缺少的知识