C语言编写向网页输入一定内容的软件

C语言编写向网页输入一定内容的软件,第1张

我想到了很多种办法,但我感觉最简单的还是模拟鼠标键盘控制。API mouse_event 和 kbd_event

当然如过是我的话,我会在程序里放一个webbroswer控件,用js代码定时控制。

还有直接post,可以连网页都不用开。方便

首先,你这个想法还是很不错的,我以前也想这么做过。不过,学习html语言在这里肯定是次要的,主要的还是要学会分析的方法,而不是掌握被分析的内容,你说是吧?如果要用程序抓取网页自动保存到本地,就要会用socket编程,或者学习使用libcurl库,这些都比学html语言有用的多,不做网页抓取的时候,这些知识依然非常有用。而且,不同的网页,内容不同,规律可能也不同。比如你给的那个例子网址,我右键查看了源代码,里面就根本没有所谓的<td>、<tr>标签,即它的表格不是通过这些标签来实现的。所以,让你去看这些标签,就是南辕北辙了。网页分析,说到底还是字符串处理和分析。所以,你如果真的想学,不如好好学一下正则表达式和字符串处理相关的函数,以及函数库,比如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

<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}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11744874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存