c訪問網頁
1. c語言打開一個網頁,用指定瀏覽器
ShellExecute 第三個參數指定瀏覽器的執行文件全名;第四個參數指定網址。例如用IE打開www..com:
ShellExecute(0, "open", "C:\\Program Files\\Internet Explorer\\iexplore.exe", "http://www..com", NULL, SW_SHOW);
一般瀏覽器都支持網址參數。如果某瀏覽器顯示默認主頁,說明該瀏覽器不支持網址參數。
2. 用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文件。
但要注意:較大的文件不一定下載完全;有些站點可能檢查鏈接源,限制下載。
3. 怎麼通過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,重新操作。)
4. 怎麼用C++訪問網頁
用C++hinternet這個API可以實現訪問網頁
你要是想做個瀏覽器哦可以用內置的OCXWEB控制項
#include<stdio.h>
#include<Windows.h>
#include<Wininet.h>
#pragmacomment(lib,"Wininet.lib")
#defineURLL"http://www..com/"
#defineUSER_AGENTL"Mozilla/4.0(compatible;MSIE8.0;WindowsNT5.1;Trident/4.0;.NET4.0C;.NET4.0E;.NETCLR2.0.50727)"
boolOpenUrl()
{
HINTERNEThInternet,hInternetUrl;
hInternet=InternetOpen(USER_AGENT,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,NULL);
if(!hInternet){
wprintf(L"InternetOpenerror:%d ",GetLastError());
returnfalse;
}
hInternetUrl=InternetOpenUrl(hInternet,URL,NULL,0,INTERNET_FLAG_HYPERLINK,NULL);
if(!hInternetUrl){
wprintf(L"InternetOpenUrlerror:%d ",GetLastError());
InternetCloseHandle(hInternet);
returnfalse;
}
InternetCloseHandle(hInternetUrl);
InternetCloseHandle(hInternet);
returntrue;
}
intmain()
{
OpenUrl();
return0;
}
5. c語言如何使用libcurl訪問一個網頁,得到源碼後返回給一個字元串變數
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<curl/curl.h>
structstring{
char*ptr;
size_tlen;
};
voidinit_string(structstring*s){
s->len=0;
s->ptr=malloc(s->len+1);
if(s->ptr==NULL){
fprintf(stderr,"malloc()failed ");
exit(EXIT_FAILURE);
}
s->ptr[0]='