c语言如何实现自动打开网页,C语言,如何对网页进行操作?

最佳答案

首先,你这个想法还是很不错的,我以前也想这么做过。不过,学习html语言在这里肯定是次要的,主要的还是要学会分析的方法,而不是掌握被分析的内容,你说是吧?如果要用程序抓取网页自动保存到本地,就要会用socket编程,或者学习使用libcurl库,这些都比学html语言有用的多,不做网页抓取的时候,这些知识依然非常有用。而且,不同的网页,内容不同,规律可能也不同。比如你给的那个例子网址,我右键查看了源代码,里面就根本没有所谓的

、标签,即它的表格不是通过这些标签来实现的。所以,让你去看这些标签,就是南辕北辙了。网页分析,说到底还是字符串处理和分析。所以,你如果真的想学,不如好好学一下正则表达式和字符串处理相关的函数,以及函数库,比如tidy库等。正则表达式是用来匹配一类字符串的,方便找规律,也方便处理,你稍微学习一点点就知道有多么的强大,多么的有用了。而且,正则表达式跟语言无关,什么语言都能用得到,学这个不亏的。标准C库中没有正则表达式相关的函数,一般来说C中使用两种正则表达式库,一为POSIX 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 #include #include #include int main(int argc, char **argv ){const char* input = "Foo

Foo!";TidyBuffer output = {0};TidyBuffer errbuf = {0};int rc = -1;Bool ok;TidyDoc 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;}

最佳答案由网友  SEOEngineer  提供

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值