页面:http://www.yzu.edu.cn/col/col37746/index.html?uid=55987&pageNum=1
能获取到源码然后告诉我下代码怎么实现的 直接结单

解决方案 »

  1.   

    打开浏览器,右键查看源代码。
    代码实现的话,使用webclient即可。   string url = @"http://www.yzu.edu.cn/col/col37746/index.html?uid=55987&pageNum=1";
                WebClient wb = new WebClient();
                string htmlData = wb.DownloadString(url).ToString();
      

  2.   

    1#的代码没问题..
    var html=new webclient.downloadstring("url");可以获取当前html的"源码".但是你说到"不完整" 这个东西 他获取到是 html的源码 而不是F12查看元素的源码.因为里面有一些东西是动态加载出来的. 这种是无法获取的.. 而且也没有解决方案.所以如果你想要找一些数据 你只能F12看里面有没有其他ajax的请求了.于是我打开了这个网页. 发现你想获取的 就是新闻吧  也就是 你想采集新闻.那么我们F12抓一下数据 就能看到有接口请求.
    这里
    http://www.yzu.edu.cn/module/web/jpage/dataproxy.jsp?startrecord=61&endrecord=120&perpage=20&MmEwMD=4dFAejc73667JfvLEKTe6yyzx2HofN1YFACWDoOzWCrROd58SO3y.6HDBrxc40JEFL8cS5c63e5KpEFnZssfCmUAqjlgV3K_6fP.tODg3C5OndOTRoNi2UkCDUhyr9VLOja7IgGVA8xvVYO2ujwGZXjYyxoyoUiI57nAEEmesn.bnIEHMoeyD8uSkj_SZEQD08wnI4mSNCdpCPKfdZVKzmnaOgoos_6CSRcRuzcQXl0UyPxgUTeLmF4qQHtSqHDxjN7GAisHPiiLJ.dyln.STmt6zx.UohSQrM2ENMaMKKqWZElTyBRzkie7wBSv5Hm.VolPZIcSQlC2Pe6v31OCXpYwMev0zexaX1fF1C9H4rzD9Eoo67Bwng4rMiZ03Tkcj4ZQkNn89ZKBvc50FAGoUGeai1wODLV7W47uDYX4AJeQAM9tExxTv0Ghi6lywohxx9sc请求这里发现返回的是xml的数据
    <datastore><totalrecord>8558</totalrecord><totalpage>428</totalpage><recordset><record><![CDATA[<li><span>2019-09-03</span><a href='/art/2019/9/3/art_37746_710465.html'  title='我校第二届“中美人才培养计划121双学位项目”学生赴美学习' target='_blank'>我校第二届“中美人才培养计划121双学位项目”学生赴美学习</a></li>]]></record><record><![CDATA[<li><span>2019-09-02</span><a href='/art/2019/9/2/art_37746_710399.html'  title='我校承办扬州市内审协会科教文卫片内审工作交流会' target='_blank'>我校承办扬州市内审协会科教文卫片内审工作交流会</a></li>]]></record><record><![CDATA[<li><span>2019-08-
    至于如何获取请求地址以及如何解析xml 那是你自己的问题了.
    只能帮你到这了.
      

  3.   

    我用的HttpWebRequest    
      

  4.   

    爬虫还是python好做,可以使用Selenium+PhantomJS抓取Ajax和动态HTML内容
    C#可以试下CefSharp+HtmlAgilityPack
      

  5.   

    我想问一下,你到底分的清什么是源码,什么是浏览器渲染,什么是DOM么不信你问一下IE,google浏览器,360浏览器,看看他们的右键查看源代码到底是什么??告诉我,IE右键查看源代码,不是你所谓的完整
    google浏览器右键查看源代码,不是你所谓的完整
      

  6.   

    网上资料比较少,没找到,你能给我个获取源码的方法吗,你说的这个winform能用吗
      

  7.   

    这个我也用了 但获取不到完整的源码
    带上头部标签  然后找对应setcookie的页面 最主要的是要声明agent 和来源
      

  8.   

    这个我也用了 但获取不到完整的源码
    带上头部标签  然后找对应setcookie的页面 最主要的是要声明agent 和来源
    大佬能弄个示例吗 你这样说我不是很懂
      

  9.   

      public string GetHtmlInfo()
            {
               string strUrl="http://www.yzu.edu.cn/col/col37746/index.html?uid=55987&pageNum=1";
                string strHtml = string.Empty;
                Uri httpURL = new Uri(strUrl);
                System.Net.HttpWebRequest httpReq;
                System.Net.HttpWebResponse httpResp;
                string strBuff = "";
                char[] cbuffer = new char[1000];
                int byteRead = 0;            ///HttpWebRequest类继承于WebRequest,并没有自己的构造函数,需通过WebRequest的Creat方法 建立,并进行强制的类型转换 
                httpReq = (HttpWebRequest)WebRequest.Create(httpURL);
                ///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换            httpResp = (HttpWebResponse)httpReq.GetResponse();
                ///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容            ///若成功取得网页的内容,则以System.IO.Stream形式返回,若失败则产生ProtoclViolationException错 误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理 
                Stream respStream = httpResp.GetResponseStream();            ///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以            //StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8) 
                StreamReader respStreamReader = new StreamReader(respStream, Encoding.UTF8);            byteRead = respStreamReader.Read(cbuffer, 0, 256);
                while (byteRead != 0)
                {
                    string strResp = new string(cbuffer, 0, byteRead);
                    strBuff = strBuff + strResp;
                    byteRead = respStreamReader.Read(cbuffer, 0, 256);
                }            respStream.Close();
                strHtml = strBuff;
                return strHtml;        }
      

  10.   

     string message = "";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://baidu.com");
            HttpWebResponse response=null;
            try
            {
                request.Proxy = null;
                //request.KeepAlive = false;
                //声明一个HttpWebRequest请求
                request.Timeout = 60000;
                //设置连接超时时间
                request.Headers.Set("Pragma", "no-cache");
                response = (HttpWebResponse)request.GetResponse();
                if (response.ToString() != "")
                {
                    Stream streamReceive = response.GetResponseStream();
                    Encoding encoding = Encoding.GetEncoding("UTF-8");//乱码处理
                    StreamReader streamReader = new StreamReader(streamReceive, encoding);
                    message = streamReader.ReadToEnd();
                    //取指定第几个table
                    String withoutNString = message.Replace("\n", "");
                    //过滤\r 转换成空
                    String withoutRString = withoutNString.Replace("\r", "");
                    //过滤\t 转换成空
                    String withoutTString = withoutRString.Replace("\t", "");
                    //过滤\ 转换成空
                    String newString = withoutTString.Replace("\\", "");
                    //获取html中的body标签
                    String result = Regex.Match(newString, @"<body.*>.*</body>").ToString();
                    //过滤注释
                    String result2 = Regex.Replace(result, @"<!--(?s).*?-->", "", RegexOptions.IgnoreCase);
                    //过滤nbsp标签
                    String result3 = Regex.Replace(result2, @"&nbsp;", "", RegexOptions.IgnoreCase);
                    //获取body中的所有table
                    Regex regex = new Regex(@"<table.*?>[\s\S]*?<\/table>");
                    MatchCollection mc = regex.Matches(result3);
                    //获取集合类中自己需要的某个table
                    String newHtmlStr = mc[1].ToString();
                    //将数据返回
                    //Response.Write(newHtmlStr);
                    Regex reg = new Regex(@"(?<=<td>).*?(?=</td>)");
                    mc = reg.Matches(newHtmlStr);                string strQh = mc[0].ToString();
                    string strZj = mc[1].ToString();
                    string dataTime = mc[2].ToString();                DateTime dt = Convert.ToDateTime(dataTime).AddMinutes(6.1);
                    TimeSpan ts = dt - DateTime.Now;
                    if (ts.TotalMilliseconds <= 0)
                    {
                        hifMilliseconds.Value = "20000";
                    }
                    else if (ts.TotalMilliseconds > 306000)
                    {
                        hifMilliseconds.Value = "360000";
                    }
                    else
                    {
                        hifMilliseconds.Value = ts.TotalMilliseconds.ToString();
                    }
                    //hifMilliseconds.Value = (Convert.ToInt32(hifMilliseconds.Value) * 1000).ToString();                string strSql = "select QH from TbKj where QH='" + strQh + "'";
                    DataSet dst = Business.Public.Public.ExcuteDataSet(strSql);
                    if (dst.Tables[0].Rows.Count == 0)
                    {
                        strSql = "insert into TbKj values('" + strQh + "','" + strZj + "','" + dataTime + "','0') update TbKj set Ifkj='1' where QH<>" + strQh + "";
                        Business.Public.Public.ExcuteSql(strSql);
                    }
                    else
                    {
                        hifMilliseconds.Value = "20000";
                    }
                    streamReceive.Close();
                    streamReader.Close();
                }
                response.Close();
                request.Abort();
            }
            catch (Exception exp)
            {
                //MessageBox.Show(exp.Message);
                hifMilliseconds.Value = "20000";
                request.Abort();
                //this.Response.Redirect("F5.aspx");
            }
            finally
            {
                if (request != null)
                {
                    try
                    {
                        request.Abort();
                    }
                    catch
                    {
                        request.Abort();
                    }
                }
                if (response != null)
                {
                    try
                    {
                        response.Close();
                    }
                    catch
                    {
                        response.Close();
                    }
                }
            }只能帮到这里了。   具体是不是你需要的