亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

利用C#實現最基本的小說爬蟲示例代碼

2019-10-29 21:08:33
字體:
來源:轉載
供稿:網友

前言

作為一個新手,最近在學習C#,自己折騰弄了個簡單的小說爬蟲,實現了把小說內容爬下來寫入txt,還只能爬指定網站。

第一次搞爬蟲,涉及到了網絡協議,正則表達式,弄得手忙腳亂跑起來效率還差勁,慢慢改吧。下面話不多說了,來一起看看詳細的介紹吧。

爬的目標:http://www.166xs.com/xiaoshuo/83/83557/

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

一、先寫HttpWebRequest把網站扒下來

這里有幾個坑,大概說下:

第一個就是記得弄個代理IP爬網站,第一次忘了弄代理然后ip就被封了。。。。。

第二個就是要判斷網頁是否壓縮,第一次沒弄結果各種轉碼gbk utf都是亂碼。后面解壓就好了。

/// <summary>  /// 抓取網頁并轉碼  /// </summary>  /// <param name="url"></param>  /// <param name="post_parament"></param>  /// <returns></returns>  public string HttpGet(string url, string post_parament)  {   string html;   HttpWebRequest Web_Request = (HttpWebRequest)WebRequest.Create(url);   Web_Request.Timeout = 30000;   Web_Request.Method = "GET";   Web_Request.UserAgent = "Mozilla/4.0";   Web_Request.Headers.Add("Accept-Encoding", "gzip, deflate");   //Web_Request.Credentials = CredentialCache.DefaultCredentials;   //設置代理屬性WebProxy-------------------------------------------------   WebProxy proxy = new WebProxy("111.13.7.120", 80);   //在發起HTTP請求前將proxy賦值給HttpWebRequest的Proxy屬性   Web_Request.Proxy = proxy;   HttpWebResponse Web_Response = (HttpWebResponse)Web_Request.GetResponse();   if (Web_Response.ContentEncoding.ToLower() == "gzip")  // 如果使用了GZip則先解壓   {    using (Stream Stream_Receive = Web_Response.GetResponseStream())    {     using (var Zip_Stream = new GZipStream(Stream_Receive, CompressionMode.Decompress))     {      using (StreamReader Stream_Reader = new StreamReader(Zip_Stream, Encoding.Default))      {       html = Stream_Reader.ReadToEnd();      }     }    }   }   else   {    using (Stream Stream_Receive = Web_Response.GetResponseStream())    {     using (StreamReader Stream_Reader = new StreamReader(Stream_Receive, Encoding.Default))     {      html = Stream_Reader.ReadToEnd();     }    }   }   return html;  }

二、下面就是用正則處理內容了,由于正則表達式不熟悉所以重復動作太多。

1.先獲取網頁內容

 IWebHttpRepository webHttpRepository = new WebHttpRepository();   string html = webHttpRepository.HttpGet(Url_Txt.Text, "");

2.獲取書名和文章列表

書名

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

文章列表

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

string Novel_Name = Regex.Match(html, @"(?<=<h1>)([/S/s]*?)(?=</h1>)").Value; //獲取書名   Regex Regex_Menu = new Regex(@"(?is)(?<=<dl class=""book_list"">).+?(?=</dl>)");   string Result_Menu = Regex_Menu.Match(html).Value; //獲取列表內容   Regex Regex_List = new Regex(@"(?is)(?<=<dd>).+?(?=</dd>)");   var Result_List = Regex_List.Matches(Result_Menu); //獲取列表集合

3.因為章節列表前面有多余的<dd>,所以要剔除

int i = 0; //計數   string Menu_Content = ""; //所有章節   foreach (var x in Result_List)   {    if (i < 4)    {     //前面五個都不是章節列表,所以剔除    }    else    {     Menu_Content += x.ToString();    }    i++;   }

4.然后獲取<a>的href和innerHTML,然后遍歷訪問獲得內容和章節名稱并處理,然后寫入txt

Regex Regex_Href = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""/s>]+)/1[^>]*>(?<text>(?:(?!</?a/b).)*)</a>");   MatchCollection Result_Match_List = Regex_Href.Matches(Menu_Content); //獲取href鏈接和a標簽 innerHTML    string Novel_Path = Directory.GetCurrentDirectory() + "//Novel//" + Novel_Name + ".txt";  //小說地址   File.Create(Novel_Path).Close();   StreamWriter Write_Content = new StreamWriter(Novel_Path);   foreach (Match Result_Single in Result_Match_List)   {    string Url_Text = Result_Single.Groups["url"].Value;    string Content_Text = Result_Single.Groups["text"].Value;    string Content_Html = webHttpRepository.HttpGet(Url_Txt.Text + Url_Text, "");//獲取內容頁    Regex Rege_Content = new Regex(@"(?is)(?<=<p class=""Book_Text"">).+?(?=</p>)");    string Result_Content = Rege_Content.Match(Content_Html).Value; //獲取文章內容    Regex Regex_Main = new Regex(@"(    )(.*)");    string Rsult_Main = Regex_Main.Match(Result_Content).Value; //正文       string Screen_Content = Rsult_Main.Replace(" ", "").Replace("<br />", "/r/n");    Write_Content.WriteLine(Content_Text + "/r/n");//寫入標題    Write_Content.WriteLine(Screen_Content);//寫入內容   }   Write_Content.Dispose();   Write_Content.Close();   MessageBox.Show(Novel_Name+".txt 創建成功!");   System.Diagnostics.Process.Start(Directory.GetCurrentDirectory() + //Novel//);

三、小說寫入成功

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

C#,實現網絡爬蟲,小說爬蟲,小說網站爬蟲

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美在线第一页| xvideos成人免费中文版| 浅井舞香一区二区| 国产精品免费久久久久影院| 国产欧美va欧美va香蕉在线| 日韩一区二区精品视频| 黑人精品xxx一区一二区| 国产一区二区三区在线观看网站| 亚洲高清色综合| 日韩av电影在线免费播放| 国产最新精品视频| 亚洲成avwww人| 亚洲精品大尺度| 久久精视频免费在线久久完整在线看| 一区二区三区四区在线观看视频| 91免费高清视频| 国产精品美乳在线观看| 欧美激情亚洲综合一区| 国产日韩在线精品av| 日韩有码片在线观看| 精品无码久久久久久国产| 日日狠狠久久偷偷四色综合免费| 成人午夜在线视频一区| 亚洲视频在线视频| 狠狠爱在线视频一区| 国产97色在线| 色综合色综合久久综合频道88| 精品国产一区二区三区久久久| 欧美性xxxx极品高清hd直播| 欧美伦理91i| 欧美日韩综合视频网址| 亚洲第一精品久久忘忧草社区| 91色中文字幕| 国产精品白嫩美女在线观看| 久久69精品久久久久久国产越南| 亚洲国产一区自拍| zzijzzij亚洲日本成熟少妇| 色老头一区二区三区在线观看| 欧美精品九九久久| 欧美成人免费在线观看| 成人激情春色网| 亚洲成人av片| 91禁国产网站| 亚洲精品资源美女情侣酒店| 91精品久久久久久久久久久| 成人在线视频网| 色在人av网站天堂精品| 国产成人极品视频| 久久久久久久久久久人体| 久久人91精品久久久久久不卡| 欧美视频免费在线观看| 亚洲欧美在线免费| 91亚洲国产精品| 国产成人精品久久亚洲高清不卡| 欧美日韩在线视频观看| 91麻豆桃色免费看| 午夜精品99久久免费| 欧美精品videossex88| 亚洲аv电影天堂网| 亚洲欧美中文字幕| 日韩在线视频观看| 成人性生交大片免费看视频直播| 久久精品视频导航| 欧美性高潮在线| 国产精品久久久av久久久| 国产97在线|亚洲| 欧美激情免费观看| 性欧美暴力猛交69hd| 成人久久久久久| 动漫精品一区二区| 精品性高朝久久久久久久| 久久久久久69| 国产精品视频自拍| 8050国产精品久久久久久| 久久99青青精品免费观看| 欧美怡红院视频一区二区三区| 伊人青青综合网站| 国产成人aa精品一区在线播放| 国产综合在线观看视频| 欧美成人精品一区二区三区| 久久精品国产亚洲精品2020| 亚洲欧美一区二区三区情侣bbw| 日本中文字幕成人| 久久精品小视频| 日韩在线高清视频| 欧美一级在线亚洲天堂| 国产日韩欧美在线观看| 九九久久久久久久久激情| 国产精品丝袜久久久久久高清| 在线视频中文亚洲| 欧美激情亚洲一区| 日韩国产欧美区| 91国自产精品中文字幕亚洲| 日韩二区三区在线| 亚洲国产小视频在线观看| 都市激情亚洲色图| 2019中文字幕在线免费观看| 亚洲在线观看视频| 日韩av三级在线观看| 欧美一区二区三区免费观看| 亚洲无线码在线一区观看| 91麻豆桃色免费看| 欧美巨大黑人极品精男| 国产日韩在线播放| 韩剧1988在线观看免费完整版| 国产精品一区二区3区| 狠狠爱在线视频一区| 亚洲人成77777在线观看网| 国产一区二区三区视频在线观看| 欧美亚洲一区在线| 亚洲第一页自拍| 成人免费福利视频| 国产aaa精品| 国模极品一区二区三区| 国产综合视频在线观看| 97久久精品视频| 国产免费一区二区三区香蕉精| 国产成人精品电影久久久| 在线日韩精品视频| 亚洲一区二区三区xxx视频| www亚洲精品| 久久视频精品在线| 久久久精品视频在线观看| 日韩成人在线视频网站| 大胆欧美人体视频| 国产欧美在线视频| 4388成人网| 91大神在线播放精品| 国产精品av在线| 91免费看视频.| 精品在线小视频| 亚洲色无码播放| 欧美极品少妇xxxxⅹ裸体艺术| 国产精品网站入口| 国产精品777| 美女啪啪无遮挡免费久久网站| 欧美日韩aaaa| 亚洲美女中文字幕| 成人午夜在线观看| 欧美一级视频一区二区| 成人午夜小视频| 成人激情av在线| 国产精品久久久久久网站| 日本伊人精品一区二区三区介绍| 欧美日韩亚洲高清| 高潮白浆女日韩av免费看| 成人网欧美在线视频| 亚洲人成亚洲人成在线观看| 91高清视频免费观看| 国产精彩精品视频| 成人黄色免费网站在线观看| 夜夜嗨av一区二区三区免费区| 欧美成aaa人片免费看| 亚洲女人天堂成人av在线| 欧美性猛交xxxx免费看漫画| 日韩成人免费视频| 亚洲自拍中文字幕| 91精品国产乱码久久久久久蜜臀| 亚洲毛片在线观看| 欧美亚洲国产日本| 亚洲精品国产欧美| 久久精品中文字幕| 日韩精品在线免费| 久久97精品久久久久久久不卡|