『壹』 c語言如何調用網頁上某個功能
1、使用WebBrowser控制項,可以操作網頁中的元素、控制項,調用網頁的JS方法。 可以使用MFC集成WebBrowser。 QT中,有與WebBrowser類似的QWebEngineView控制項。
2、網頁錄入信息的本質是,你再填寫了信息之後,瀏覽器根據你的輸入,將數據通過HTTP的POST方式發送到伺服器。你若是不想手動錄入,便按照既定的格式,自己用程序構造HTTP的POST請求,然後將其發送到伺服器即可。 這里我肯定只能給出思路,具體的實現如果樓主還不清楚的話,建議樓主自己去學習一下web的工作方式、HTTP相關知識。 清楚了HTTP之後,c的網路相關直接用socket。若嫌麻煩便找個HTTP客戶端庫吧,建議使用curl。
『貳』 用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文件。
但要注意:較大的文件不一定下載完全;有些站點可能檢查鏈接源,限制下載。
『叄』 用c語言,如何抓取網頁上的數據。
你說的網頁數據是指什麼?
表格? 表單 ? HTML元素?
三種的處理方法不一樣
樓上是利用第三方控制項取得HTML代碼~
『肆』 c語言獲取網頁源碼
其實程序是獲取到了,只是對應網站是動態程序 301 是動態跳轉 ,小弟你應該了解下HTML語言,或HTTP協議,程序是沒有問題
『伍』 如何用C語言抓取網頁內容
1、要用程序抓取網頁自動保存到本地,就要會用socket編程,或者學習使用libcurl庫,不做網頁抓取的時候,這些知識依然非常有用。而且,不同的網頁,內容不同,規律可能也不同。
『陸』 怎樣使用C語言接收網頁的信息
C語言打開網路
#include<stdio.h>
#include<winsock.h>
#pragmacomment(lib,"ws2_32.lib")
voidmain()
{
char*host="www..com";
WSADATAdata;
//winsock版本2.2
interr=WSAStartup(MAKEWORD(2,2),&data);
if(err)
return;
//用域名獲取對方主機名
structhostent*h=gethostbyname(host);
if(h==NULL)
return;
//IPV4
if(h->h_addrtype!=AF_INET)
return;
structin_addrina;
//解析IP
memmove(&ina,h->h_addr,4);
LPSTRipstr=inet_ntoa(ina);
//Socket封裝
structsockaddr_insi;
si.sin_family=AF_INET;
si.sin_port=htons(80);
si.sin_addr.S_un.S_addr=inet_addr(ipstr);
intsock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
connect(sock,(SOCKADDR*)&si,sizeof(si));
if(sock==-1||sock==-2)
return;
//發送請求
charrequest[1024]="GET/?st=1HTTP/1.1 Host:";
strcat(request,host);
strcat(request," Connection:Close ");
intret=send(sock,request,strlen(request),0);
//獲取網頁內容
intisstart=0;
while(ret>0)
{
constintbufsize=1024;
char*buf=(char*)calloc(bufsize,1);
ret=recv(sock,buf,bufsize-1,0);
printf("%s",buf);
free(buf);
}
closesocket(sock);
WSACleanup();
return;
}
『柒』 C語言獲取網頁內容問題,求助高手!
你sniffer一下數據包~~看看有什麼不同~~
有些需要查看瀏覽器信息~~你可以仿造一下http頭~
如果你不是為了研究,只是為了寫程序用~
你可以使用wininet里的api函數~~
裡面有http和ftp的~~
『捌』 c語言提取html中的信息
1. 如果你懂編程序:
使用字元串匹配演算法,例如KMP演算法,AC演算法等。
AC演算法比較好,網路上可能有現成的,弄一個源代碼,再修改下就可以。
2. 如果你不懂編程:
用word,ultraedit等編輯工具,直接搜索你要的字元串就可以了吧。
『玖』 怎麼通過C語言實現對網頁上面的數據的讀取
有一個叫做curl的工具,提供各種函數,其中包括http訪問的函數,可以通過該工具抓取網頁數據。
『拾』 linux環境下,c語言怎麼讀取WEB伺服器的80埠上頁面的內容
已知url ,host, port;
int s, size;
struct sockaddr_in sin;
struct hostent* phe;
char cmd[256];
char msg_hdr[1000];
char* p;
//准備http中GET 方法的請求。
sprintf(cmd,"GET %s\r\nHTTP/1.1\r\nHost:%s", url, host);
//創建socket
if((s=socket(PF_INET,SOCK_STREAM,0))<0)
return -1;
//取得遠程主機的IP地址,失敗函數返回-1
if((phe = gethostbyname(host)) == NULL)
return -1;
memset(&sin,0,sizeof(sin));
memcpy(&sin.sin_addr,phe->h_addr,sizeof(struct in_addr));
sin.sin_family=AF_INET;
sin.sin_port=htons(pms->port);
//跟遠程機器建立連接,失敗函數返回-1
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))==-1)
return -1;
//發送GET請求
if(write(s,cmd,strlen(cmd))<0)
return 0;
//從鏈接描述符(連接管道)中讀取傳送過來的數據
if(read(s, msg_hdr, 300)<0)
error;
close(s);
//讀到該文件的大小
if((p=strstr(msg_hdr,"Content-Length"))||(p=strstr(msg_hdr,"Content-length:")))
p+=16;
else
error;
//返回大小
size = atoi(p);
sprintf(cmd,"GET %s HTTP/1.1\r\nHost: %s\r\nAccept: */*\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nConnection: close\r\nRange: bytes0-%d\r\n\r\n", url, host, size);
//創建套介面
if((s=socket(AF_INET,SOCK_STREAM,0))<0)
return 0;
//取得遠程主機的IP地址,失敗返回0
if((phe = gethostbyname(host)) == NULL)
return 0;
memset(&sin,0,sizeof(sin));
memcpy(&sin.sin_addr,phe->h_addr,sizeof(struct in_addr));
sin.sin_family=AF_INET;
sin.sin_port=htons(port);
//建立連接
if(connect(s,(struct sockaddr*)&sin,sizeof(sin))==-1)
return 0;
//發送讀取請求
if(write(s,cmd,strlen(cmd))<0)
error;
read(s, buf, BUFSIZE)..............