博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
htmlunit简单百度搜索,网页解析
阅读量:4540 次
发布时间:2019-06-08

本文共 4140 字,大约阅读时间需要 13 分钟。

package com;import java.io.IOException;import java.net.MalformedURLException;import java.util.List;import java.util.Timer;import java.util.TimerTask;import org.apache.regexp.recompile;import org.apache.xalan.templates.ElemApplyImport;import bean.User;import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.HtmlForm;import com.gargoylesoftware.htmlunit.html.HtmlPage;import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;import com.gargoylesoftware.htmlunit.html.HtmlTextInput;import dao.UserDao;public class TimingSearch {    public static TimingSearch instance=new TimingSearch();    public static TimingSearch getInstance() {        return instance;    }    StringBuffer stringWeb=new StringBuffer("");    //第一次截取存放的字符串    StringBuffer opWeb=new StringBuffer("");    //第二次截取存放的字符串,条数    StringBuffer endWeb=new StringBuffer("");    public final User  downHtml(int id,String key) throws FailingHttpStatusCodeException, MalformedURLException, IOException  {        User list=(User) UserDao.getInstance().getUserObject(id);                    final WebClient  webclient=new WebClient();            webclient.setCssEnabled(false);            webclient.setJavaScriptEnabled(false);            final HtmlPage htmlPage=webclient.getPage("http://www.baidu.com");            final HtmlForm form=htmlPage.getFormByName("f");            final HtmlSubmitInput  button=form.getInputByValue("百度一下");            final HtmlTextInput textFileld=form.getInputByName("wd");            //设置关键字            textFileld.setValueAttribute(key+"");            final HtmlPage page2=button.click();            stringWeb.append(page2.asText().trim());            int m=stringWeb.length();            int i=stringWeb.lastIndexOf("百度为您找到相关结果约");            if(i==-1){                 i=stringWeb.lastIndexOf("百度为您找到相关结果");                 if(i==-1){                     stringWeb.delete(0, m);                     return list;                 }                 else{//                        //第一次截取                        opWeb.append(stringWeb.substring(i+10, m));                        int n=opWeb.length();                        stringWeb.delete(0, m);                        int  j=opWeb.indexOf("个");                        //第二次截取                        endWeb.append(opWeb.substring(0, j));                        opWeb.delete(0, n);                        int end=endWeb.length();                        String num=endWeb.toString();                        String url=page2.getUrl().toString();                        list.setNum(num);                        list.setUrl(url);                            UserDao.getInstance().updateUser(num, url, id);                            endWeb.delete(0, end);                            return list;                 }            }            else {                //第一次截取                opWeb.append(stringWeb.substring(i+11, m));                int n=opWeb.length();                stringWeb.delete(0, m);                int  j=opWeb.indexOf("个");                //第二次截取                endWeb.append(opWeb.substring(0, j));                opWeb.delete(0, n);                int end=endWeb.length();                String num=endWeb.toString();                String url=page2.getUrl().toString();                list.setNum(num);                list.setUrl(url);                    UserDao.getInstance().updateUser(num, url, id);                    endWeb.delete(0, end);                    return list;            }    }    public static void main(String[] args)  {        TimingSearch t=getInstance();        try {            t.downHtml(2012002, "就是点击开始的空间");        } catch (FailingHttpStatusCodeException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (MalformedURLException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

 

转载于:https://www.cnblogs.com/shizhenglg/archive/2013/01/08/2850940.html

你可能感兴趣的文章
PAT甲级——A1005 Spell It Right
查看>>
PAT甲级——【牛客练习题1002】
查看>>
左神算法书籍《程序员代码面试指南》——1_06用栈来求解汉诺塔问题
查看>>
PAT甲级——A1007 Maximum Subsequence Sum
查看>>
Dijkstra算法
查看>>
左神算法书籍《程序员代码面试指南》——1_02由两个栈组成的队列
查看>>
左神算法书籍《程序员代码面试指南》——1_10最大值减去最小值小于或等于num的子数组数量...
查看>>
左神算法书籍《程序员代码面试指南》——1_03如何使用递归函数和栈操作逆序一个栈...
查看>>
左神算法书籍《程序员代码面试指南》——2_02在单链表和双链表中删除倒数第k个字节...
查看>>
左神算法书籍《程序员代码面试指南》——2_03删除链表的中间节点和a/b处的节点...
查看>>
左神算法书籍《程序员代码面试指南》——1_04猫狗队列
查看>>
PAT甲级——A1006 Sign In and Sign Out
查看>>
PAT甲级——A1016 Phone Bills
查看>>
PAT甲级——A1008 Elevator
查看>>
PAT甲级——A1009 Product of Polynomials
查看>>
PAT甲级——A1024 Palindromic Number
查看>>
左神算法书籍《程序员代码面试指南》——1_08构造数组的MaxTree
查看>>
PAT甲级——A1029 Median
查看>>
左神算法书籍《程序员代码面试指南》——2_06判断一个链表是否为回文结构
查看>>
PAT甲级——A1046 Shortest Distance
查看>>