‘壹’ 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)..............