自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用C#語(yǔ)言構(gòu)造一個(gè)Web程序

開(kāi)發(fā) 后端
本文介紹利用C#語(yǔ)言構(gòu)造一個(gè)Web程序,它能夠把整個(gè)網(wǎng)站的內(nèi)容下載到某個(gè)指定的目錄,程序的運(yùn)行界面。你可以方便地利用本文提供的幾個(gè)核心類(lèi)構(gòu)造出自己的Web程序。

本文介紹如何用C#語(yǔ)言構(gòu)造一個(gè)Web程序,它能夠把整個(gè)網(wǎng)站的內(nèi)容下載到某個(gè)指定的目錄,程序的運(yùn)行界面。你可以方便地利用本文提供的幾個(gè)核心類(lèi)構(gòu)造出自己的Web程序。

C#特別適合于構(gòu)造Web程序,這是因?yàn)樗呀?jīng)內(nèi)置了HTTP訪問(wèn)和多線程的能力,而這兩種能力對(duì)于Web程序來(lái)說(shuō)都是非常關(guān)鍵的。下面是構(gòu)造一個(gè)Web程序要解決的關(guān)鍵問(wèn)題:

1.HTML分析:需要某種HTML解析器來(lái)分析Web程序遇到的每一個(gè)頁(yè)面;

2.頁(yè)面處理:需要處理每一個(gè)下載得到的頁(yè)面。下載得到的內(nèi)容可能要保存到磁盤(pán),或者進(jìn)一步分析處理;

3.多線程:只有擁有多線程能力,Web程序才能真正做到高效;

4.確定何時(shí)完成:不要小看這個(gè)問(wèn)題,確定任務(wù)是否已經(jīng)完成并不簡(jiǎn)單,尤其是在多線程環(huán)境下。

HTML解析

C#語(yǔ)言本身不包含解析HTML的能力,但支持XML解析;不過(guò),XML有著嚴(yán)格的語(yǔ)法,為XML設(shè)計(jì)的解析器對(duì)HTML來(lái)說(shuō)根本沒(méi)用,因?yàn)镠TML的語(yǔ)法要寬松得多。為此,我們需要自己設(shè)計(jì)一個(gè)HTML解析器。本文提供的解析器是高度獨(dú)立的,你可以方便地將它用于其它用C#處理HTML的場(chǎng)合。

本文提供的HTML解析器由ParseHTML類(lèi)實(shí)現(xiàn),使用非常方便:首先創(chuàng)建該類(lèi)的一個(gè)實(shí)例,然后將它的Source屬性設(shè)置為要解析的HTML文檔:

  1. ParseHTML parse = new ParseHTML();  
  2. parse.Source = "Hello World"

接下來(lái)就可以利用循環(huán)來(lái)檢查HTML文檔包含的所有文本和標(biāo)記。通常,檢查過(guò)程可以從一個(gè)測(cè)試Eof方法的while循環(huán)開(kāi)始:

  1. while(!parse.Eof())  
  2. {  
  3. char ch = parse.Parse(); 

Parse方法將返回HTML文檔包含的字符--它返回的內(nèi)容只包含那些非HTML標(biāo)記的字符,如果遇到了HTML標(biāo)記,Parse方法將返回0值,表示現(xiàn)在遇到了一個(gè)HTML標(biāo)記。遇到一個(gè)標(biāo)記之后,我們可以用GetTag()方法來(lái)處理它。

  1. if(ch==0)  
  2. {  
  3. HTMLTag tag = parse.GetTag();  
  4. }

一般地,Web程序最重要的任務(wù)之一就是找出各個(gè)HREF屬性,這可以借助C#的索引功能完成。例如,下面的代碼將提取出HREF屬性的值(如果存在的話)。

  1. Attribute href = tag["HREF"];  
  2. string link = href.Value; 

獲得Attribute對(duì)象之后,通過(guò)Attribute.Value可以得到該屬性的值。以上介紹利用C#語(yǔ)言構(gòu)造一個(gè)Web程序

【編輯推薦】

  1. C# 4.0 Dynamic關(guān)鍵字全解析
  2. 淺談C#中構(gòu)造函數(shù)和成員函數(shù)
  3. C#回調(diào)函數(shù)及API應(yīng)用淺析
  4. 詳解C# Object.Equals函數(shù)
  5. C#調(diào)用Windows API函數(shù)
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-09-11 09:11:09

2009-08-19 16:50:32

Visual C#C#語(yǔ)言特性

2009-08-25 01:46:00

C# WINDOWS服

2009-08-13 17:04:09

C#語(yǔ)言C#程序

2009-08-12 17:44:30

C# Web Serv

2024-03-08 12:45:00

C#Web服務(wù)器

2009-08-14 00:55:21

C#程序編譯

2009-08-19 14:15:42

C# 復(fù)合控件

2009-07-23 16:44:50

XML Web服務(wù)使用ASP.NET構(gòu)造

2023-12-07 07:26:04

2022-11-02 08:51:01

2009-07-30 18:18:27

C#時(shí)間計(jì)算

2009-08-18 17:19:33

C#事件模型

2009-07-22 17:15:04

C#實(shí)現(xiàn)

2009-07-31 14:15:38

C# 構(gòu)造函數(shù)

2009-08-24 18:09:13

C#構(gòu)造函數(shù)

2009-06-15 11:03:10

Java語(yǔ)言C#語(yǔ)言

2009-01-19 11:07:42

C#Web.NET

2023-12-07 12:59:46

C語(yǔ)言循環(huán)隊(duì)列代碼

2009-08-26 15:53:42

C#數(shù)據(jù)訪問(wèn)XML
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)