導航:首頁 > 股市分析 > 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分析網頁程序相關的資料

熱點內容
今天美元對人民幣中間匯率是多少錢 瀏覽:50
南京商廈古今內衣價格多少錢 瀏覽:1000
黑角現貨交易 瀏覽:730
樂投天下投資 瀏覽:638
社保基金怎麼進了鹽湖股份 瀏覽:567
560002基金發行價 瀏覽:241
貴金屬深加工流程 瀏覽:395
債券價格表 瀏覽:309
炒外匯圖片 瀏覽:222
德州線下貸款 瀏覽:725
後市融資 瀏覽:735
一塊錢人民幣等於多少比索 瀏覽:362
歐元匯率人民幣最高多少 瀏覽:487
呼和浩特股票配資 瀏覽:333
銀行黑名單怎麼貸款買車 瀏覽:764
中小型融資擔保企業法務怎麼樣 瀏覽:790
人民幣的匯率牌價在哪查詢 瀏覽:848
價格調整計算公式 瀏覽:930
美原油今天開盤價格 瀏覽:364
今天人民幣對緬甸匯率多少人民幣 瀏覽:222