c語言網頁編程
⑴ 如何編寫c語言程序
准備材料
windows電腦、VC++(DEV_C++)
1.打開桌面上的DEV_C++,進入如下界面:
⑵ c語言怎樣實現網路編程
1、枝並要實現網路編程,首先得了解網路編程的原理。
大部分網路編程底層都是通過TCP/IP或者UDP協議進行通訊,不管是TCP還是UDP通訊,都是通過調用socket實現的。
Socket是應用層與TCP/IP協議族通信的中間軟體抽象層,它是一組介面。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket介面後面,對用戶來說,一組簡單的介面就是全部,讓Socket去伏搭灶組織數據,以符合指定的協議。
Socket通訊分為兩部分:伺服器端和客戶端,伺服器端監聽客戶端的連接,連接上之後,實現數據通訊,流程
2、用C語言調用Socket實現通訊
伺服器端示例代缺扮碼如下:
#include
#include
#include
#include
#include
#include
#include
#include
#definePORT1500//埠號
#defineBACKLOG5/*最大監聽數*/
intmain(){
intsockfd,new_fd;/*socket句柄和建立連接後的句柄*/
structsockaddr_inmy_addr;/*本方地址信息結構體,下面有具體的屬性賦值*/
structsockaddr_intheir_addr;/*對方地址信息*/
intsin_size;
sockfd=socket(AF_INET,SOCK_STREAM,0);//建立socket
if(sockfd==-1){
printf("socketfailed:%d
⑶ c鎬庝箞璁捐$綉欏礳璇璦鎬庝箞鍋氱綉欏
濡備綍鍋氱綉欏佃捐
宸ュ叿/鍘熸潗鏂涓浜虹數鑴
緗戦〉璁捐¤蔣浠:FrontPage(綆鍗曟槗鐢錛岄珮搴︾﹀悎IE嫻忚堝櫒鏀鎸佺殑璁捐)錛汥reamWave(鍔熻兘寮哄ぇ錛屾垚鍝佽捐℃敮鎸佸氱嶆祻瑙堝櫒)錛
鍥懼儚澶勭悊杞浠:Photoshop鎴朏ireworks鍔ㄧ敾鍒朵綔:FlashMX
鐭ヨ瘑鍌ㄥ:
鍩烘湰鐨勭綉緇滅煡璇嗭紱
HTML鐭ヨ瘑
寰堢畝鍗曘傛棭鏈熷彧鏈夎繖涓鏄鐢ㄦ潵鍒朵綔緗戦〉鐨勶紝鍙浠ョ敤璁頒簨鏈緙栬緫錛岀敤嫻忚堝櫒鎵撳紑鍚庡氨鍙浠ュ憟鐜扮綉欏電殑鍐呭廣
CSS鐭ヨ瘑
綰ц仈鏍峰紡琛ㄧ緝鍐欎負
鏈嶅姟鍣ㄨ剼鏈鐭ヨ瘑錛屽侫SP鎴朠HP銆
ASP鏄疉ctiveServerPage鐨勭緝鍐欙紝鎰忔濇槸
PHP鏄鑻辨枃瓚呮枃鏈棰勫勭悊鍣ㄧ殑緙╁啓銆侾HP鏄涓縐嶅祵鍏ュ紡HTML璇璦錛屾槸涓縐嶈剼鏈璇璦錛屽湪鏈嶅姟鍣ㄧ鎵ц岋紝宓屽叆鍦℉TML鏂囨。涓銆傝璦椋庢牸綾諱技C璇璦錛屽簲鐢ㄥ箍娉涖
鏂規硶/姝ラ
鍑嗗囩煡璇嗭紝鍖呮嫭瀛︿範浣跨敤涓婅堪鍚勭嶅伐鍏峰拰杞浠躲
浠旂粏鎯蟲兂浣犳兂鍋氫粈涔堛傜綉絝欑殑鍐呭瑰拰鐢ㄩ旀潵鍐沖畾鍒朵綔緗戦〉鐨勯庢牸銆備絾鏄鏁翠綋緗戦〉璁捐″簲璇ラ伒寰涓浜涘繀瑕佺殑闅愬惈瑕佹眰:
1.綆鍗:瀹冨彲浠ヨ╄塊棶鑰呬竴鐩浜嗙劧錛岃屼笉浼氳╀粬浠鎰熷埌綣佺悙鍜屾壘涓嶅埌浠栦滑闇瑕佺殑涓滆タ銆
2.紿佸嚭涓婚:娌℃湁涓婚樼殑緗戦〉涔熶細璁╀漢澶卞幓嫻忚堢殑鍏磋叮銆
3.瀹炵敤鎬:涓涓緗戦〉鍗充嬌鍐嶆紓浜錛屽傛灉瀵硅塊棶鑰呮病鏈夌敤錛屼篃鏃犳硶鍚稿紩浜轟滑鐨勬敞鎰忓姏銆傛湁鍙ヨ瘽璇:鍙鏈夎闇瑕侊紝浣犳墠鑳界敓瀛樸
鏀墮泦淇℃伅錛屽傚浘鐗囥佹枃瀛楀拰鍏朵粬鍙鑳藉湪緗戦〉涓浣跨敤鐨勫唴瀹廣傚杽浜庡埄鐢ㄧ櫨搴︺佽胺姝岀瓑鎼滅儲寮曟搸鎵懼埌鑷宸遍渶瑕佺殑淇℃伅銆
鍠勪簬鍒╃敤緗戠粶涓婂凡鏈夌殑淇℃伅鍜屽唴瀹癸紝姣斿備竴浜涘紑婧愪唬鐮併(緗戠粶鏄澶ф潅鐑╋紝鍚勭嶄俊鎮楸奸緳娣鋒潅錛屽悇縐嶄漢鐗╅奔榫欐販鏉傦紝瑕佸︿細鍒嗚鯨銆)
娉ㄦ剰鑷宸卞埗浣滅殑緗戦〉鍐呭逛笌紺句氦鏃朵唬鐨勪竴鑷存э紝鍙婃椂鏇存柊緗戦〉甯冨矓銆
緇撴潫
闇瑕佹敞鎰忕殑浜嬮」
榪欎釜緇忛獙鍙鏄綺楃暐璇磋:浠ュ強闇瑕佺殑宸ュ叿鍜岀煡璇嗗偍澶囥傚傛灉鎯蟲垚涓虹綉絝欐湅鍙嬶紝璇風戶緇瀛︿範緗戠珯寤鴻炬墍闇鐨勭煡璇嗐佸緩璁炬祦紼嬪拰娉ㄦ剰浜嬮」銆
緗戦〉璁捐℃祦紼嬪氨鏄榪欎箞鍋氱殑銆傚笇鏈涘逛綘鏈夊府鍔┿傛劅璋㈡偍闃呰繪湰鏂囷紒
綆鍗曠殑C璇璦緙栫▼錛屽彲浠ュ仛緗戠珯鍚?綆鍗曠殑錛
綆鍗曠殑c鏄鏃犳硶鍋氱綉絝欑殑錛孋璇璦鏄闈㈠悜榪囩▼鐨勭▼搴忚璦銆傚湪緗戦〉鍒朵綔涓瑿璇璦涓昏佺紪鍐欐搷浣滅郴緇熺殑婧愪唬鐮侊紝鐒跺悗鍙浠ョ敤緙栧啓涓浜涚▼搴忎慨澶嶄竴浜涙搷浣滅郴緇熸紡媧炪傚綋涓婣SP錛.NET錛孭HP錛孞SP鏄鐜板湪鍋氱綉絝欐渶騫挎硾鐨勭▼搴忚璦銆傚傛灉鍙鏄鍋氫竴浜涚畝鍗曠殑鑷宸辯粌涔犵殑緗戠珯鍙浠ヨ嚜瀛︿竴涓媓tml銆
C鍜孋++鍙浠ョ敤鏉ュ仛緗戠珯鍚楋紵
鍙浠ュ仛緗戠珯浣嗕笉寤鴻浣跨敤錛孋++鍋氱綉絝欏お楹葷儲浜嗭紝涓嶇℃槸鍔熻兘榪樻槸澶栬傦紝璋冭搗鏉ラ兘澶楹葷儲
c濡備綍灝嗙綉欏墊坊鍔犲埌妗岄潰錛
鍗曞嚮緗戦〉鐨勬爣棰樻爮鈫掑彸閿鐐瑰嚮鈫掑緩蹇鎹鋒柟寮忊啋娣誨姞鍒版岄潰
⑷ 如何利用c語言分析網頁
首先,你這個想法還是很不錯的,我以前也想這么做過。不過,學習html語言在這里肯定是次要的,主要的還是要學會分析的方法,而不是掌握被分析的內容,你說是吧?
如果要用程序抓取網頁自動保存到本地,就要會用socket編程,或者學習使用libcurl庫,這些都比學html語言有用的多,不做網頁抓取的時候,這些知識依然非常有用。而且,不同的網頁,內容不同,規律可能也不同。比如你給的那個例子網址,我右鍵查看了源代碼,裡面就根本沒有所謂的<td>、<tr>標簽,即它的表格不是通過這些標簽來實現的。所以,讓你去看這些標簽,就是南轅北轍了。
網頁分析,說到底還是字元串處理和分析。所以,你如果真的想學,不如好好學一下正則表達式和字元串處理相關的函數,以及函數庫,比如tidy庫等。正則表達式是用來匹配一類字元串的,方便找規律,也方便處理,你稍微學習一點點就知道有多麼的強大,多麼的有用了。而且,正則表達式跟語言無關,什麼語言都能用得到,學這個不虧的。
標准C庫中沒有正則表達式相關的函數,一般來說C中使用兩種正則表達式庫,一為POSIX C正則庫,二為perl正則庫PCRE。相比較而言PCRE要強大些,POSIX C正則庫就足夠使用。
下面,這幾個鏈接裡面有網頁分析的一些例子,雖然不都是C語言來處理的。但是,思路都是一致的。 所以,說到底,還是正則表達式、正則函數庫、字元串處理函數這些才是根本。先說這些,希望對你有所幫助。如果你在學習過程中還有什麼問題,歡迎隨時交流:)
C#的: http://www.jb51.net/article/16618.htm
C#的: http://mytiu.blog.163.com/blog/static/1059718452009127112226478/
這里還有一段C語言的代碼, 是將下載下來的網頁源代碼處理成沒有標簽的純文字文本
#include <tidy.h>
#include <buffio.h>
#include <stdio.h>
#include <errno.h>
int main(int argc, char **argv )
{
const char* input = "<title>Foo</title><p>Foo!";
TidyBuffer output = {0};
TidyBuffer errbuf = {0};
int rc = -1;
Bool ok;
TidyDoc tdoc = tidyCreate(); // Initialize "document"
printf( "Tidying:\t%s\n", input );
ok = tidyOptSetBool( tdoc, TidyXhtmlOut, yes ); // Convert to XHTML
if ( ok )
rc = tidySetErrorBuffer( tdoc, &errbuf ); // Capture diagnostics
if ( rc >= 0 )
rc = tidyParseString( tdoc, input ); // Parse the input
if ( rc >= 0 )
rc = tidyCleanAndRepair( tdoc ); // Tidy it up!
if ( rc >= 0 )
rc = tidyRunDiagnostics( tdoc ); // Kvetch
if ( rc > 1 ) // If error, force output.
rc = ( tidyOptSetBool(tdoc, TidyForceOutput, yes) ? rc : -1 );
if ( rc >= 0 )
rc = tidySaveBuffer( tdoc, &output ); // Pretty Print
if ( rc >= 0 )
{
if ( rc > 0 )
printf( "\nDiagnostics:\n\n%s", errbuf.bp );
printf( "\nAnd here is the result:\n\n%s", output.bp );
}
else
printf( "A severe error (%d) occurred.\n", rc );
tidyBufFree( &output );
tidyBufFree( &errbuf );
tidyRelease( tdoc );
return rc;
}