导航:首页 > 股市分析 > c分析网页程序

c分析网页程序

发布时间:2021-03-08 17:53:00

⑴ c语言可以写网页程序吗

C语言不适合用于写网页,虽然可以用C语言写CGI程序,但是这种方法现在已经被PHP/ASP/JSP等动态页面技术取代,所以并不常用。

⑵ 如何用vc自动抓取网页,并分析其内容

#include"afxinet.h"

CInternetSessionc;
CHttpFile*p=NULL;
p=(CHttpFile*)c.OpenURL(_T("http://lol.qq.com/act/a20150326dqpd/"));
CStringstr;
TCHARsRecv[1025]={''};
CStringinfo;
while(p->ReadString(sRecv,1024))
{
//编码转换,可解决中文乱码问题
//gb2312转为unicode,则用CP_ACP
//gbk转为unicode,也用CP_ACP
//utf-8转为unicode,则用CP_UTF8
intbufsize=MultiByteToWideChar(CP_ACP,0,(LPCSTR)sRecv,-1,NULL,0);
wchar_t*pbuf=newwchar_t[bufsize+1];
memset(pbuf,0,(bufsize+1)*sizeof(wchar_t));
MultiByteToWideChar(CP_ACP,0,(LPCSTR)sRecv,-1,pbuf,bufsize*sizeof(wchar_t));
str.Format(_T("%s"),pbuf);
info+=str;
}
SetDlgItemTextW(IDC_EDIT1,info);

⑶ 如何用c编写网页,使网页具有发送数据以及接收数据的功能

网页发送数据和接受数据?这不是中间件的职责吗?

用C写网页,把编译后的exe文件修改为cgi.

其输入输出都是根据标准输入输出完成的,不过如果LZ想用虚拟主机来执行C语言编写CGI,那是不可行的,因为CGI的权限太大,你可以执行任何操作,所以如果买的虚拟主机肯定不支持C语言编写CGI。

CGI接口标准包括标准输入、环境变量、标准输出三部分。
1.标准输入
CGI程序像其他可执行程序一样,可通过标准输入(stdin)从Web服务器得到输入信息,如Form中的数据,这就是所谓的向CGI程序传递数据的POST方法。这意味着在操作系统命令行状态可执行CGI程序,对CGI程序进行调试。POST方法是常用的方法,本文将以此方法为例,分析CGI程序设计的方法、过程和技巧。

2.环境变量
操作系统提供了许多环境变量,它们定义了程序的执行环境,应用程序可以存取它们。Web服务器和CGI接口又另外设置了自己的一些环境变量,用来向CGI程序传递一些重要的参数。CGI的GET方法还通过 环境变量QUERY-STRING向CGI程序传递Form中的数据。

3.标准输出
CGI程序通过标准输出(stdout)将输出信息传送给Web服务器。传送给Web服务器的信息可以用各种格式,通常是以纯文本或者HTML文本的形式,这样我们就可以在命令行状态调试CGI程序,并且得到它们的输出。

下面是一个简单的CGI程序,它将HTML中Form的信息直接输出到We b浏览器。
# include <stdio.h>
# include <stdib.h>
main()
{
int i , n ;
printf (〃Content type: text/plain\n\n〃);
n=0;
if(getenv(〃CONTENT-LENGTH〃))
n=atoi(getenv(CONTENT-LENGTH〃));
for (i=0;i<n;i++)
putchar(getchar());
putchar (′\n′);
fflush(stdout);
}

下面对此程序作一下简要的分析。
prinft (〃Content type :text/plain\n\n〃);
此行通过标准输出将字符串〃Content type :text/plain\n\n〃传送给Web服务器。它是一个MIME头信息,它告诉Web服务器随后的输出是以纯ASCII文本的形式。请注意在这个头信息中有两个新行符,这是因为Web服务器需要在实际的文本信息开始之前先看见一个空行。
if (getenv(〃CONTENT-LENGTH〃))
n=atoi (getenv(〃CONTENT-LENGTH〃));
此行首先检查环境变量CONTENT-LENGTH是否存在。Web服务器在调用使用POST方法的CGI程序时设置此环境变量,它的文本值表示Web 服务器传送给CGI程序的输入中的字符数目,因此我们使用函数atoi() 将此环境变量的值转换成整数,并赋给变量n。请注意Web服务器并不以文件结束符来终止它的输出,所以如果不检查环境变量CONTENT-LENGTH, CGI程序就无法知道什么时候输入结束了。

for (i=0;i<n;i++)
putchar(getchar());
此行从0循环到(CONTENT-LENGTH-1)次将标准输入中读到的每一个字符直接拷贝到标准输出,也就是将所有的输入以ASCII的形式回送给Web服务器。
通过此例,我们可将CGI程序的一般工作过程总结为如下几点。
1.通过检查环境变量CONTENT-LENGTH,确定有多少输入;
2.循环使用getchar()或者其他文件读函数得到所有的输入;
3.以相应的方法处理输入;
4.通过〃Contenttype:〃头信息,将输出信息的格式告诉Web服务器;
5.通过使用printf()或者putchar()或者其他的文件写函数,将输出传送给Web服务器。
总之,CGI程序的主要任务就是从Web服务器得到输入信息,进行处理,然后将输出结果再送回给Web服务器。

⑷ 如何利用c语言分析网页

  1. 要用程序抓取网页自动保存到本地,就要会用socket编程,或者学习使用libcurl库,不做网页抓取的时候,这些知识依然非常有用。而且,不同的网页,内容不同,规律可能也不同。

  2. 网页分析,本质是字符串处理和分析。所以需要掌握正则表达式和字符串处理相关的函数,以及函数库,比如tidy库等。正则表达式是用来匹配一类字符串的,方便找规律,也方便处理。而且,正则表达式跟语言无关,什么语言都能用得到。标准C库中没有正则表达式相关的函数,一般来说C中使用两种正则表达式库,一为POSIX C正则库,二为perl正则库PCRE。相比较而言PCRE要强大些,POSIX C正则库就足够使用。

  3. 例程,将下载下来的网页源代码处理成没有标签的纯文字文本:

    #include<tidy.h>
    #include<buffio.h>
    #include<stdio.h>
    #include<errno.h>
    intmain(intargc,char**argv)
    {
    constchar*input="<title>Foo</title><p>Foo!";
    TidyBufferoutput={0};
    TidyBuffererrbuf={0};
    intrc=-1;
    Boolok;
    TidyDoctdoc=tidyCreate();//Initialize"document"
    printf("Tidying: %s ",input);
    ok=tidyOptSetBool(tdoc,TidyXhtmlOut,yes);//ConverttoXHTML
    if(ok)
    rc=tidySetErrorBuffer(tdoc,&errbuf);//Capturediagnostics
    if(rc>=0)
    rc=tidyParseString(tdoc,input);//Parsetheinput
    if(rc>=0)
    rc=tidyCleanAndRepair(tdoc);//Tidyitup!
    if(rc>=0)
    rc=tidyRunDiagnostics(tdoc);//Kvetch
    if(rc>1)//Iferror,forceoutput.
    rc=(tidyOptSetBool(tdoc,TidyForceOutput,yes)?rc:-1);
    if(rc>=0)
    rc=tidySaveBuffer(tdoc,&output);//PrettyPrint
    if(rc>=0)
    {
    if(rc>0)
    printf(" Diagnostics: %s",errbuf.bp);
    printf(" Andhereistheresult: %s",output.bp);
    }
    else
    printf("Asevereerror(%d)occurred. ",rc);
    tidyBufFree(&output);
    tidyBufFree(&errbuf);
    tidyRelease(tdoc);
    returnrc;
    }

⑸ c语言,分析程序运行结果

if (s[i]==ch) 这里的ch 是函数的参数2,函数 void fun(char *s,char ch)。
调用函数的作用 是 删除 字符串 char *s 里 所有 的字符 ch.
char str[]="eATEfeed"; 调用 fun(str,'e'); 就是删除 字符串 "eATEfeed" 里 所有 的字符 e. 结果得 ATEfd。
函数中 s[i]!='\0' 和 s[k+1]!='\0' 都是控制循环语句的执行,循环到字符串结束符 '\0' 为止。

⑹ 如何用c语言编写网站程序

可以用PHP、ASP或者其他都行
如果不知道怎么编写,最好考虑先用一些开源的源码
比如wordpress、discuz等
希望能帮助到你

⑺ 网页设计程序分析

第一段:调用外部CSS
第二、三段:调用外部JS程序
第四段:弹出“'helloworld', 'Hello World.'”小窗口

⑻ c/c++如何抓取网页内容

1、第一种是编写一个 HTTP 客户端程序,主动连接对端地址,并发送 GET 请求,然后接收响应。代码量较大,而且需要对 HTTP 协议非常熟知,不仅要处理 HTTP, 若是安全连接的网站,可能还要处理 HTTPS, 不建议采用;
2、第二种是使用外部工具,若你 Linux 下编程,可以在程序中调用 wget 命令,将请求的 URL 传入 wget 做为参数,并将返回的结果输出到一个指定的文件,然后去读取这个文件,分析返回的 HTML 源码即可;
3、第三种是使用 HTTP 库,比如 libcurl 库,网上有使用方法,使用起来很简单,推荐使用这种方法。

⑼ 请教,做一个用来抓取网页上的数据进行分析的小程序,用什么语言比较好。我以前只学过C

我只知道JAVA,如下是获取歌曲top的代码
private void button1_Click(object sender, EventArgs e)
{
//要抓取的URL地址
string Url = "http://list.mp3..com/topso/mp3topsong.html?id=1#top2";
//得到指定Url的源码
string strWebContent = GetWebContent(Url);
richTextBox1.Text = strWebContent;
//取出和数据有关的那段源码
int iBodyStart = strWebContent.IndexOf("<body", 0);
int iStart = strWebContent.IndexOf("歌曲TOP500", iBodyStart);
int iTableStart = strWebContent.IndexOf("<table", iStart);
int iTableEnd = strWebContent.IndexOf("</table>", iTableStart);
string strWeb = strWebContent.Substring(iTableStart, iTableEnd - iTableStart + 8);
//生成HtmlDocument
WebBrowser webb = new WebBrowser();
webb.Navigate("about:blank");
HtmlDocument htmldoc = webb.Document.OpenNew(true);
htmldoc.Write(strWeb);
HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("TR");
foreach (HtmlElement tr in htmlTR)
{
string strID = tr.GetElementsByTagName("TD")[0].InnerText;
string strName = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "MusicName");
string strSinger = SplitName(tr.GetElementsByTagName("TD")[1].InnerText, "Singer");
strID = strID.Replace(".", "");
//插入DataTable
AddLine(strID, strName, strSinger,"0");
string strID1 = tr.GetElementsByTagName("TD")[2].InnerText;
string strName1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "MusicName");
string strSinger1 = SplitName(tr.GetElementsByTagName("TD")[3].InnerText, "Singer");
//插入DataTable
strID1 = strID1.Replace(".", "");
AddLine(strID1, strName1, strSinger1,"0");
string strID2 = tr.GetElementsByTagName("TD")[4].InnerText;
string strName2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "MusicName");
string strSinger2 = SplitName(tr.GetElementsByTagName("TD")[5].InnerText, "Singer");
//插入DataTable
strID2 = strID2.Replace(".", "");
AddLine(strID2, strName2, strSinger2,"0");
}
//插入数据库
InsertData(dt);

dataGridView1.DataSource = dt.DefaultView;
}

阅读全文

与c分析网页程序相关的资料

热点内容
房奴如何理财 浏览:803
南昌住房公积金贷款计算器 浏览:427
国盛华兴投资有限公司 浏览:822
工行贵金属挂单四种 浏览:918
主力资金进出散户资金进出指标公式 浏览:880
报雷理财 浏览:898
广信股份股票 浏览:472
小额贷款怎么收账 浏览:798
基金交银蓝筹净值519697 浏览:222
杏花村国贸投资公司销售情况 浏览:395
什么时间银行理财产品利率会高些 浏览:231
深大通资金流向个股行情 浏览:73
生活理财分类 浏览:435
北京公积金贷款代办 浏览:210
万达股票下 浏览:170
碳元科技投资 浏览:492
n派思股票 浏览:483
冠军1号系统指标公式 浏览:924
黄金怎样知道真假 浏览:37
手机换外汇吗 浏览:126