html怎么获取动态数据

html怎么获取动态数据,第1张

可以使用动态HTML从一个HTML页面元素中获取数据。它允许获取和 *** 作数据而不需经过服务器。使用页面上对象的属性,在 Visual Basic \x0d\代码中可以在页面上搜集数据、执行计算并显示响应,而不需将处理从客户端传送到服务器,传送将增加对用户 *** 作和请求的响应时间。\x0d\\x0d\例如,假设正在使用一个应用程序,它允许用户通过输入作者名字、书名或检索书号到一个搜索页的文本字段中,从一个数据库中查询书目。文本字段被命名为Author、Title和CallNo。当从应用程序的搜索页提交一个查询时,应用程序必须从这些文本字段获取该值。\x0d\\x0d\下面的代码显示了如何使用变量来获取这些字段的值:\x0d\Private function cmdSearch_onclick() As Boolean\x0d\创建变量包含搜索条件。\x0d\Dim sAuthor as String\x0d\Dim sTitle as String\x0d\Dim sCallNo as String\x0d\从页面获取搜索条件。\x0d\sAuthor=MeauthorValue\x0d\sTitle=MetitleValue\x0d\sCallNo=MecallnoValue\x0d\这里的代码处理并返回查询。\x0d\End Function\x0d\这段代码使用HTML文本字段的Value属性获取字段的数据,代码将打开一个数据库连接、创建一个记录集并返回适当的记录,然后数据被发送给用户。

简单实现:

HtmlRequest类的内容:

[java] view plaincopy

package comcapinfotechnet;

import javaioByteArrayOutputStream;

import javaioIOException;

import javaioInputStream;

import javanet>

HTMLParser具有小巧,快速的优点,缺点是相关文档比较少(英文的也少),很多功能需要自己摸索。对于初学者还是要费一些功夫的,而一旦上手以后,会发现HTMLParser的结构设计很巧妙,非常实用,基本各种需求都可以满足。比如问题中提到的提取网页文本信息。

用以下代码来实现提取网页文本信息

// 提取网页主要文本内容

public String getContent(){

content=(isHub())getHubEntries():getTopicBlock();

Systemoutprintln("<Content>:");

Systemoutprintln("=========================");

Systemoutprintln(content);

return content;

}

// 提取Hub类网页文本内容,如yahoo,sina等门户网

public String getHubEntries(){

StringBean bean=new StringBean();

beansetLinks(false);

beansetReplaceNonBreakingSpaces(true);

beansetCollapse(true);

try {

parservisitAllNodesWith(bean);

} catch (ParserException e) {

Systemerrprintln("getHubEntries()-->"+e);

}

parserreset();

return beangetStrings();

}

// 获取主题性(Topical)网页文本内容:对于博客等以文字为主体的网页效果较好

public String getTopicBlock(){

HasParentFilter acceptedFilter=new HasParentFilter(new TagNameFilter("p"));

NodeList nodes=null;

try {

nodes=parserextractAllNodesThatMatch(acceptedFilter);

} catch (ParserException e) {

Systemerrprintln("getTopicBlock"+e);

}

StringBuffer sb=new StringBuffer();

SimpleNodeIterator iter=nodeselements();

while(iterhasMoreNodes()){

Node node=iternextNode();

sbappend(nodegetText()+"\n");

}

parserreset();

return sbtoString();

}

另外,要知道的是

HTMLParser的核心模块是orghtmlparserParser类,这个类实际完成了对于HTML页面的分析工作。这个类有下面几个构造函数

public Parser ();

public Parser (Lexer lexer, ParserFeedback fb);

public Parser (URLConnection connection, ParserFeedback fb) throws ParserException;

public Parser (String resource, ParserFeedback feedback) throws ParserException;

public Parser (String resource) throws ParserException;

public Parser (Lexer lexer);

public Parser (URLConnection connection) throws ParserException;

和一个静态类public static Parser createParser (String html, String charset);

提供几个常用的

对于树型结构进行遍历的函数,这些函数最容易理解:

Node getParent ():取得父节点

NodeList getChildren ():取得子节点的列表

Node getFirstChild ():取得第一个子节点

Node getLastChild ():取得最后一个子节点

Node getPreviousSibling ():取得前一个兄弟(不好意思,英文是兄弟姐妹,直译太麻烦而且不符合习惯,对不起女同胞了)

Node getNextSibling ():取得下一个兄弟节点

取得Node内容的函数:

String getText ():取得文本

String toPlainTextString():取得纯文本信息。

String toHtml () :取得HTML信息(原始HTML)

String toHtml (boolean verbatim):取得HTML信息(原始HTML)

String toString ():取得字符串信息(原始HTML)

Page getPage ():取得这个Node对应的Page对象

int getStartPosition ():取得这个Node在HTML页面中的起始位置

int getEndPosition ():取得这个Node在HTML页面中的结束位置

用于Filter过滤的函数:

void collectInto (NodeList list, NodeFilter filter):基于filter的条件对于这个节点进行过滤,符合条件的节点放到list中。

用于Visitor遍历的函数:

void accept (NodeVisitor visitor):对这个Node应用visitor

用于修改内容的函数,这类用得比较少:

void setPage (Page page):设置这个Node对应的Page对象

void setText (String text):设置文本

void setChildren (NodeList children):设置子节点列表

其他函数:

void doSemanticAction ():执行这个Node对应的 *** 作(只有少数Tag有对应的 *** 作)

Object clone ():接口Clone的抽象函数。

以上知识可以完整处理HTML页面的所有内容

参考资料:

htmlparser官方网站下载地址

>

1、浏览器打开网页,右键-》查看源代码

然后Ctrl+S保存下来

2、打开要保存的网页,直接Ctrl+S,选择“仅HTML”

以上两种方法,选择其一即可。

以上就是关于html怎么获取动态数据全部的内容,包括:html怎么获取动态数据、java获取html内的内容、如何使用htmlparser提取网页文本信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9719417.html

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

发表评论

登录后才能评论

评论列表(0条)

保存