小菜最近在编写一个办公用的软件,用于将学院的课程安排表中的数据获取到,然后写到World文档中,最后打印,关于写入World文档,小菜已经会了。本来如果直接拿到连接学校的数据库的设计表,然后操作,这样实现也简单,但是如果以后学校的数据库出事的话,怕惹麻烦。现在想解决的问题是:学校提供了网站查询课表,网页的工作原理就是从数据库中查询到数据然后显示在网页中,我的想法是C#既然提供的能够抓取网页源代码的类和方法,网页既然能在本地电脑显示这些数据,说明这些从数据库里面取得的数据已经加载到了本地电脑,C#是不是提供了某些类或者方法能取得这些数据呢,当然这些信息是动态从数据库里面取的,这样省得涉及学校的数据库里面的信息。小菜在图书馆找了一些资料,但是这些资料的历史比较久,而且也没有类似的方法。说白了就是每个用户的课程安排是不一样的,而且这些数据是看源代码是没有直接的数据的。因此跪求高手指点:有没有这种可能。现在,小菜只是在做概要设计,望高手,大神不吝赐教,如果可以的话请讲一讲,如果不行的,小菜在想别的方法,是在不行的话就只好拿到学校的数据库设计来链接了。获取网页中的动态表格信息c#数据库

解决方案 »

  1.   

    http://www.google.com.hk/search?hl=zh-CN&q=.net+html%E8%A7%A3%E6%9E%90
      

  2.   

    需要说明一下,关于使用.net的http客户端方法(例如 (new WebClient()).DownLoad方法)获取网页html输出时,有一些人经常说什么“正则”之类的仅仅是胡乱匹配个别词儿的概念。要知道,理解一个文章的html架构,必须从语法上去理解它。语法解析就包括了词法解析。而不能用不靠谱的去词儿的匹配上去识别。
      

  3.   

    http://zhoufoxcn.blog.51cto.com/792419/595344http://blog.csdn.net/dalmeeme/article/details/7191793
      

  4.   

    http://www.cnblogs.com/gaoweipeng/archive/2009/09/02/1558279.html
      

  5.   

    想谢谢以上各位大神的解题思路,这些思路给我过滤掉一些不要的信息指明了方向,我现在要想问的是,比如网页中Class.forName("com.mysql.jdbc.Driver").newInstance();
    string url = "jdbc:mysql://localhost/company";
    Connection conn = DriverManager.getConnection(url,"root","");
    Statement stmt = conn.createStatement();
    Result rs = stmt.executeQuery("select * from employee");
    while(rs ! = null && rs.next()){
    out.print("<tr><td>"+rs.getString("Sno")+"</td>");
    out.print("<td>"+rs.getString("Sname")+"</td>");
    out.print("<td>"+rs.getString("Sage")+"</td></tr>");
    }
    rs.close();
    stmt.close();
    conn.close();
    就是类似于这种,从数据库里面取出学号,名字,年龄,比如'001','李明','22'这组数据,这来在本地显示。但是源代码里面没有直接的显示出来,而是用了数据库连接语句。根据Web的工作原理,这些从数据库里面取出的数据,最后是加载到我们的电脑上才能显示出来的。我现在想确定有没有一直方法能够提前到上面的那组从数据库里面提取的但是在html源代码里面无法直接看到的数据。
      

  6.   

    好吧,表示小菜学艺不精,对Web的工作原理不懂,问出的问题造成大神都不敢回答了,其实Web里面的连数据库的代码在服务器端进过处理的,所有到了客户端后,最终的Web源码就是
    <table>
               <tr><td></td></tr>
               </table>
    貌似是无法获得服务器里面的链接数据库的代码的,也就是说我们直接用上面的几位的大神说的对HTML进行解析看看。不过上面的解析用到了的范例我都没试过,今天试试吧。谢谢以上各位大神的回答。