
C正则库,二为perl正则库PCRE。相比较而言PCRE要强大些,POSIX
C正则库就足够使用。下面,这几个链接里面有网页分析的一些例子,虽然不都是C语言来处理的。但是,思路都是一致的。
所以,说到底,还是正则表达式、正则函数库、字符串处理函数这些才是根本。先说这些,希望对你有所帮助。如果你在学习过程中还有什么问题,欢迎随时交流:)C#的: http://www.jb51.net/article/16618.htmC#的: http://mytiu.blog.163.com/blog/static/1059718452009127112226478/这里还有一段C语言的代码,
是将下载下来的网页源代码处理成没有标签的纯文字文本#include
<tidy.h>#include
<buffio.h>#include
<stdio.h>#include
<errno.h>int
main(int
argc,
char
**argv
){const
char*
input
=
"<title>Foo</title>
Foo!"TidyBuffer
output
=
{0}TidyBuffer
errbuf
=
{0}int
rc
=
-1Bool
okTidyDoc
tdoc
=
tidyCreate()
//
Initialize
"document"printf(
"Tidying:\t%s\n",
input
)ok
=
tidyOptSetBool(
tdoc,
TidyXhtmlOut,
yes
)
//
Convert
to
XHTMLif
(
ok
)rc
=
tidySetErrorBuffer(
tdoc,
&errbuf
)
//
Capture
diagnosticsif
(
rc
>=
0
)rc
=
tidyParseString(
tdoc,
input
)
//
Parse
the
inputif
(
rc
>=
0
)rc
=
tidyCleanAndRepair(
tdoc
)
//
Tidy
it
up!if
(
rc
>=
0
)rc
=
tidyRunDiagnostics(
tdoc
)
//
Kvetchif
(
rc
>
1
)
//
If
error,
force
output.rc
=
(
tidyOptSetBool(tdoc,
TidyForceOutput,
yes)
?
rc
:
-1
)if
(
rc
>=
0
)rc
=
tidySaveBuffer(
tdoc,
&output
)
//
Pretty
Printif
(
rc
>=
0
){if
(
rc
>
0
)printf(
"\nDiagnostics:\n\n%s",
errbuf.bp
)printf(
"\nAnd
here
is
the
result:\n\n%s",
output.bp
)}elseprintf(
"A
severe
error
(%d)
occurred.\n",
rc
)tidyBufFree(
&output
)tidyBufFree(
&errbuf
)tidyRelease(
tdoc
)return
rc}
1、使用WebBrowser控件,可以 *** 作网页中的元素、控件,调用网页的JS方法。 可以使用MFC集成WebBrowser。 QT中,有与WebBrowser类似的QWebEngineView控件。2、网页录入信息的本质是,你再填写了信息之后,浏览器根据你的输入,将数据通过HTTP的POST方式发送到服务器。你若是不想手动录入,便按照既定的格式,自己用程序构造HTTP的POST请求,然后将其发送到服务器即可。 这里我肯定只能给出思路,具体的实现如果楼主还不清楚的话,建议楼主自己去学习一下web的工作方式、HTTP相关知识。 清楚了HTTP之后,c的网络相关直接用socket。若嫌麻烦便找个HTTP客户端库吧,建议使用curl。
网页发送数据接受数据间件职责用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程序传递些重要参数CGIGET通 环境变量QUERY-STRING向CGI程序传递Form数据
3.标准输
CGI程序通标准输(stdout)输信息传送给Web服务器传送给Web服务器信息用各种格式,通纯文本或者HTML文本形式,我命令行状态调试CGI程序,并且输
面简单CGI程序,HTMLForm信息直接输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=0i<ni++)
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服务器调用使用POSTCGI程序设置环境变量,文本值表示Web 服务器传送给CGI程序输入字符数目,我使用函数atoi() 环境变量值转换整数,并赋给变量n请注意Web服务器并文件结束符终止输,所检查环境变量CONTENT-LENGTH, CGI程序知道候输入结束
for (i=0i<ni++)
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服务器
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)