java提取html页面中有效的信息

 第一种方式,通过正则来获取

  第二种:通过jsoup来抓取

       <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.13.1</version>
        </dependency>

 

mport java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GrabUtil {

    private static final Pattern p = Pattern.compile("<input name=\"transaction_id\" type=\"hidden\" value=\"(.{8})");

    public static void main(String args[]) {

        String html = "<!DOCTYPE html>" +
                "<html ng-app=\"\">" +
                "<head>" +
                "    <title>授权访问您的帐户 - Worktile</title>" +
                "    <link rel=\"stylesheet\" type=\"text/css\"" +
                "          href=\"/dist/open.min.css?v=7.8.3\">" +
                "    <link rel=\"Shortcut Icon\" href=\"/image/favicon/favicon.ico\">" +
                "</head>" +
                "    <form action=\"/oauth2/decision\" method=\"post\">" +
                "        <input name=\"grant_type\" type=\"hidden\" value=\"code\">" +
                "        <input name=\"team_id\" type=\"hidden\" value=\"5704def7c8b59ad142f6d33b\">" +
                "        <input name=\"transaction_id\" type=\"hidden\" value=\"1UqdZnRk\">" +
                "" +
                "        <div class=\"form-group open-oauth-btn\">" +
                "            <input type=\"submit\" value=\"授权\" id=\"allow\" class=\"btn btn-primary open-oauth\">" +
                "            <input type=\"submit\" value=\"取消\" name=\"cancel\" id=\"deny\" class=\"btn btn-primary cancel\">" +
                "        </div>" +
                "    </form>" +
                "</div>" +
                "" +
                "</body>" +
                "</html>";
        // 简单示例,相当于String html=getHtml(String urlString);
        List resultList = getContext(html);
        System.out.println("取得的信息为:"+resultList.get(0));

    }

    /**
     * 通过正则表达式来提取内容
     * @param html 要解析的html文档内容
     * @return 解析结果,可以多次匹配,每次匹配的结果按文档中出现的先后顺序添加进结果List
     */
    public static List<String> getContext(String html) {
        List<String> resultList = new ArrayList();
        Matcher m = p.matcher(html);//开始编译
        while (m.find()) {
            resultList.add(m.group(1));
        }
        return resultList;
    }

 /**
     * 通过 Jsoup来提取网页内容
     * @param html 要解析的html文档内容
     * @return 
     */
    public static List<String> getContext2(String html) {
        List<String> resultList = new ArrayList();
        Document doc = Jsoup.parse(html);
        Elements items = doc.getElementsByAttributeValue("name", "transaction_id");
        resultList.add(items.get(0).val());
        return resultList;
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值