亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于C#實現(xiàn)網(wǎng)絡(luò)爬蟲 C#抓取網(wǎng)頁Html源碼

 更新時間:2016年03月24日 17:10:32   作者:小蝦Joe  
這篇文章主要為大家詳細介紹了基于C#實現(xiàn)網(wǎng)絡(luò)爬蟲的相關(guān)資料,即C#抓取網(wǎng)頁Html源碼,感興趣的小伙伴們可以參考一下

最近剛完成一個簡單的網(wǎng)絡(luò)爬蟲,開始的時候很迷茫,不知道如何入手,后來發(fā)現(xiàn)了很多的資料,不過真正能達到我需要,有用的資料--代碼很難找。所以我想發(fā)這篇文章讓一些要做這個功能的朋友少走一些彎路。

首先是抓取Html源碼,并選擇<ul class="post_list">  </ul>節(jié)點的href:要添加using System.IO;using System.Net;

private void Search(string url)
{
 string rl;
 WebRequest Request = WebRequest.Create(url.Trim());
 
 WebResponse Response = Request.GetResponse();
 
 Stream resStream = Response.GetResponseStream();
 
 StreamReader sr = new StreamReader(resStream, Encoding.Default);
 StringBuilder sb = new StringBuilder();
 while ((rl = sr.ReadLine()) != null)
 {
  sb.Append(rl);
 }
 
 
 string str = sb.ToString().ToLower();
 
 string str_get = mid(str, "<ul class=\"post_list\">", "</ul>");
 
 
 int start = 0;
 while (true)
 {
  if (str_get == null)
   break;
  string strResult = mid(str_get, "href=\"", "\"", out start);
  if (strResult == null)
   break;
  else
  {
   lab[url] += strResult;
   str_get = str_get.Substring(start);
  }
 }
}
 
 
 
 
private string mid(string istr, string startString, string endString)
{
 int iBodyStart = istr.IndexOf(startString, 0);    //開始位置
 if (iBodyStart == -1)
  return null;
 iBodyStart += startString.Length;       //第一次字符位置起的長度
 int iBodyEnd = istr.IndexOf(endString, iBodyStart);   //第二次字符在第一次字符位置起的首次位置
 if (iBodyEnd == -1)
  return null;
 iBodyEnd += endString.Length;        //第二次字符位置起的長度
 string strResult = istr.Substring(iBodyStart, iBodyEnd - iBodyStart - 1);
 return strResult;
}
 
 
private string mid(string istr, string startString, string endString, out int iBodyEnd)
{
 //初始化out參數(shù),否則不能return
 iBodyEnd = 0;
 
 int iBodyStart = istr.IndexOf(startString, 0);    //開始位置
 if (iBodyStart == -1)
  return null;
 iBodyStart += startString.Length;       //第一次字符位置起的長度
 iBodyEnd = istr.IndexOf(endString, iBodyStart);   //第二次字符在第一次字符位置起的首次位置
 if (iBodyEnd == -1)
  return null;
 iBodyEnd += endString.Length;        //第二次字符位置起的長度
 string strResult = istr.Substring(iBodyStart, iBodyEnd - iBodyStart - 1);
 return strResult;
}

好了,上面就是全部代碼了,如果你想要運行出來的話,有些細節(jié)要自己修改下。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • WPF實現(xiàn)圓形進度條的示例代碼

    WPF實現(xiàn)圓形進度條的示例代碼

    這篇文章主要為大家詳細介紹了WPF如何實現(xiàn)圓形的進度條,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2023-01-01
  • 實例代碼講解c# 線程(下)

    實例代碼講解c# 線程(下)

    這篇文章主要介紹了c# 線程的的相關(guān)資料,文中示例代碼非常細致,對大家的學(xué)習(xí)有很大幫助,感興趣的朋友可以了解下
    2020-06-06
  • C# websocket及時通信協(xié)議的實現(xiàn)方法示例

    C# websocket及時通信協(xié)議的實現(xiàn)方法示例

    說到websocket大家一定不會陌生,WebSocket是HTML5一種新的協(xié)議。下面這篇文章主要給大家介紹了關(guān)于C# websocket及時通信協(xié)議的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • C#調(diào)用Oracle存儲過程方法介紹(附源碼)

    C#調(diào)用Oracle存儲過程方法介紹(附源碼)

    這篇文章介紹了C#調(diào)用Oracle存儲過程的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#中委托和事件的區(qū)別詳解

    C#中委托和事件的區(qū)別詳解

    C# 中的委托(Delegate)類似于 C 或 C++ 中函數(shù)的指針。事件是在委托類型變量前加上 event 關(guān)鍵字,其本質(zhì)是用來對委托類型的變量進行封裝,類似于類的屬性對字段的封裝。本文就來聊聊C#中委托和事件的區(qū)別,感興趣的可以了解一下
    2022-11-11
  • C#日期格式化的幾個要點小結(jié)

    C#日期格式化的幾個要點小結(jié)

    本文將介紹C#日期格式化的幾個要點,包括標準 DateTime 格式字符串。希望大家能從中得到更多的理解和幫助
    2013-09-09
  • C#虛方法的聲明和使用實例教程

    C#虛方法的聲明和使用實例教程

    這篇文章主要介紹了C#虛方法的聲明和使用實例教程,對于初學(xué)者理解C#的虛方法有一定的幫助,需要的朋友可以參考下
    2014-07-07
  • 詳解Asp.Net MVC的Bundle捆綁

    詳解Asp.Net MVC的Bundle捆綁

    這篇文章主要介紹了Asp.Net MVC的Bundle捆綁方法,具體實現(xiàn)方法給大家做代碼整理,一起參考一下。
    2017-11-11
  • C# TextBox控件實現(xiàn)只能輸入數(shù)字的方法

    C# TextBox控件實現(xiàn)只能輸入數(shù)字的方法

    這篇文章主要介紹了C# TextBox控件實現(xiàn)只能輸入數(shù)字的方法,本文使用TextBox的keypress事件實現(xiàn)這個需求,需要的朋友可以參考下
    2015-06-06

最新評論