编程语言
首页 > 编程语言> > javascript-如何在访问该网页之前获取网页内容

javascript-如何在访问该网页之前获取网页内容

作者:互联网

如何获取给定URL的网页描述/内容.
(类似Google的工具会简要说明每个结果链接).
我想在我的jsp页面中执行此操作.

预先感谢!

解决方法:

想法:打开URL作为流,然后HTML-解析其description meta标签中的String.

抓取URL内容:

URL url = new URL("http://www.url-to-be-parsed.com/page.html");
    BufferedReader in = new BufferedReader(
                new InputStreamReader(
                url.openStream()));

根据您的HTML解析器库的要求(流,字符串等),需要对上述代码进行调整.

HTML解析标签:

<meta name="description" content="This is a place where webmasters can put a description about this web page" />

您可能也有兴趣获取该页面的标题:

<title>This is the title of the page!</title>

警告:正则表达式似乎不能在HTML文档上可靠地工作,因此HTML-parser更好.

HTML解析器的示例:

>使用HasAttributeFilter筛选具有name =“ description”属性的标签
>尝试一个节点—> MetaTag投放
>使用MetaTag.getAttribute()获取内容

码:

import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.tags.MetaTag;

public class HTMLParserTest {
    public static void main(String... args) {
        Parser parser = new Parser();
        //<meta name="description" content="Some texte about the site." />
        HasAttributeFilter filter = new HasAttributeFilter("name", "description");
        try {
            parser.setResource("http://www.youtube.com");
            NodeList list = parser.parse(filter);
            Node node = list.elementAt(0);

            if (node instanceof MetaTag) {
                MetaTag meta = (MetaTag) node;
                String description = meta.getAttribute("content");

                System.out.println(description);
                // Prints: "YouTube is a place to discover, watch, upload and share videos."
            }

        } catch (ParserException e) {
            e.printStackTrace();
        }
    }

}

注意事项:

如果每次加载页面时都在JSP中完成此操作,则由于URL的网络I / O,您可能会变慢.甚至更糟糕的是,如果您每次都在其中包含许多URL链接的页面上即时进行此操作,则由于n个URL的顺序操作,这种变慢的速度可能会很大.也许您可以将此信息存储在数据库中并根据需要刷新它们,而不是在JSP中即时进行处理.

标签:javascript,jsp,web-crawler
来源: https://codeday.me/bug/20191106/1999186.html