當前位置:首頁 » 編程語言 » c語言操作網頁

c語言操作網頁

發布時間: 2022-10-23 11:58:54

1. 怎麼通過c語言讀取網頁裡面的數據

簡單的請求格式

GET /index.php HTTP/1.0
host:www.zixue7.com

當我們和伺服器連接上之後,發送上面的數據過去,伺服器就會返回 index.php 這個頁面給我們。

GET 這個 是表示 以什麼方式請求,HTTP中還有很多其他的請求方式,常用的就 GET POST (更詳細的 可以點開上面 http協議 那個鏈接)

GET 後面緊跟一個空格 然後 給出,要獲取的資源的名稱, /index.php 就表示獲取網站伺服器根目錄下 index.php 執行後所產生的內容,我們也可以改成 GET / HTTP/1.0 這就表示獲取默認首頁的內容 。 GET /1.html HTTP/1.0 就是獲取 伺服器根目錄下 1.html的內容,很容易理解吧。

接下來隔一個空格 跟上 HTTP/1.0 表示 http協議的版本,這個是固定的 。

第二行 host:www.zixue7.com 用來指定 訪問哪個主機。 大家都知道,一個伺服器可以放很多個網站,每個網站有不同的域名,所以我們需要用這個host來指定 我們要訪問的是哪個網站,這樣 才能正確得訪問到我們想訪問的網站。

第一步,連接伺服器。
第二步,按照http協議,發送請求數據,然後就是接受返回的內容。

沒錯,就這么簡單。

在編寫程序之前,我們先用一個小工具來模擬一下這個過程,好讓我們對http協議了解更深入一些。

telnet工具 如果是 win7下的朋友 猛戳這里-->win7開啟telnet功能

到此為止,我假設大家電腦上已經開啟了 telnet功能,正題開始。

telnet 他是一個基於tcp/ip 協議的程序,為我們用戶提供一個 與其他電腦通信的工具,我們可以使用他來和其他電腦進行連接通信。

開始->運行->輸入telnet回車, 出現一個黑框如下。

我們這時就可以輸入命令,來連接遠程主機,比如我們這次是要連接我們自學去論壇 的伺服器,
那麼我們就輸入 open www.zixue7.com 80 然後回車。

open 是打開的意思 後面跟上 要打開那個主機 然後 後面跟上埠, web伺服器默認使用的是80埠,所以 要加上80埠(不加埠 telnet默認是23埠)。

然後會出現下圖的情況,這時候 我們就可以輸入命令了,輸入的命令都將被發送到自學去論壇的伺服器上面。大家注意一下 下圖紅色箭頭所指出的部分,那裡就是一個輸入游標,不用管其他的字。

這就代表 我們已經和遠程主機連接上了,就相當於我們上節課中 客戶端執行到 connect 函數 之後 就是要調用 send函數發送數據了,在這里 我們只需要按鍵盤輸入到黑色窗口中 就會發送到服務端。

我們依次輸入以下內容,(注意,不能按退格,輸入錯誤了,就重新打開telnet,重新操作。)

2. 如何利用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;
}

3. 網頁製作。C語言--學習

C語言從來都沒有過時,匯編語言都不能說它過時,某些領域還在用。
在嵌入式,或者驅動開發方面,C語言占據了幾乎100%的市場。
如果想進行桌面程序的開放,學習C#或者java,都是一個不錯的想法。
C語言跟網頁製作,是兩個方向。
如果學C語言的話,還必須學數據結構,計算機原理等其他課程。
否則,你的水平永遠停留在一個非常低級的狀態上。
如果學習網路編程,學這些,也不錯的:
J2SE--HTML--SQL--JSP--SERVLET--SSH+AJAX
C#---HTML--SQL--ASP.NET
不論學什麼,要做到專業,都不是一時半會的事情。

4. C語言可以編輯網頁嗎

1、c語言是偏底層的語言,用來做界面的話是比較困難的
2、現在的靜態網頁設計一般使用Html+CSS,是比較基礎的東西,而且很容易上手,但也是必須掌握的。
3、現在主流的網站開發就是Java Web和asp.net。
如果你有java基礎可以走Java web的方向。可以用JSP+Servlet+Dao模式就能開發網站,當然SSH框架更加深奧。
而asp.net由於是微軟自己開發的軟體能很好的在windows平台上運行,用的是C#語言其實也和C語言差不多,因為語言是相通的,你學過一門語言後你就會有那種編程的思想。
asp.net是.NET FrameWork的一部分,是一項微軟公司的技術,是一種使嵌入網頁中的腳本可由網際網路伺服器執行的伺服器端腳本技術,它可以在通過HTTP請求文檔時再在Web伺服器上動態創建它們。 指 Active Server Pages(動態伺服器頁面) ,運行於 IIS(Internet Information Server 服務,是Windows開發的Web伺服器)之中的程序 。
4、另外,在進行網站開發時為了提高容錯能力,腳本語言是必不可少的,所以javascript或
php也是要懂一點點

5. C語言打開一個網頁,用指定瀏覽器

ShellExecute 第三個參數指定瀏覽器的執行文件全名;第四個參數指定網址。例如用IE打開www..com:

ShellExecute(0, "open", "C:\\Program Files\\Internet Explorer\\iexplore.exe", "http://www..com", NULL, SW_SHOW);

一般瀏覽器都支持網址參數。如果某瀏覽器顯示默認主頁,說明該瀏覽器不支持網址參數。

6. 用C如何讀取一個網頁內容

首先,用C讀取已知文件名的本機文件不是問題吧?那問題實質是在獲取URL表示的文件,特別是獲取遠程WWW伺服器以URL表示的文件,把它存放到本機。
有一個API函數叫 URLDownloadToFile(), 用起來特簡單。只要一句:
URLDownloadToFile(NULL, url, filename, 0, NULL);
其中url是你需要的文件,filename是下載到本機後的本地文件名。例如:
URLDownloadToFile(NULL, "http://127.0.0.1/1.txt", "C:\\temp\\1.txt", 0, NULL);
下面處理C:\temp\1.txt就可以了。
這個函數在urlmon.h中有說明;需使用urlmon.lib. 有關參數意義請自己查。好像最後一個參數是指定回調函數,可以檢查下載狀態。但我從來沒指定過。從遠程站點一次下載很多文件時特別好用。我曾經用它循環起來,一次下載兩千多個SWF文件。
但要注意:較大的文件不一定下載完全;有些站點可能檢查鏈接源,限制下載。

熱點內容
辦一個論壇需要租什麼樣的伺服器 發布:2024-12-29 14:44:21 瀏覽:959
java開閉原則 發布:2024-12-29 14:43:36 瀏覽:917
多端數據統一存儲 發布:2024-12-29 14:41:16 瀏覽:91
如何破解藍奏雲下載密碼 發布:2024-12-29 14:40:08 瀏覽:740
9500h如何查安卓版本 發布:2024-12-29 14:39:15 瀏覽:803
如何不使用信用卡支付密碼 發布:2024-12-29 14:30:36 瀏覽:198
安卓手機如何到數據到新手機 發布:2024-12-29 14:29:58 瀏覽:961
linux卸載虛擬機 發布:2024-12-29 14:29:48 瀏覽:39
樂視手機配置為什麼這么便宜 發布:2024-12-29 14:19:05 瀏覽:694
androidicon生成 發布:2024-12-29 14:11:47 瀏覽:936