首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

htmlunit分页兑现

2012-12-24 
htmlunit分页实现package com.htmlunit.skyimport java.math.BigDecimalimport java.text.ParseExceptio

htmlunit分页实现

package com.htmlunit.sky;import java.math.BigDecimal;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import com.gargoylesoftware.htmlunit.BrowserVersion;import com.gargoylesoftware.htmlunit.CollectingAlertHandler;import com.gargoylesoftware.htmlunit.WebClient;import com.gargoylesoftware.htmlunit.html.DomNodeList;import com.gargoylesoftware.htmlunit.html.HtmlDivision;import com.gargoylesoftware.htmlunit.html.HtmlElement;import com.gargoylesoftware.htmlunit.html.HtmlForm;import com.gargoylesoftware.htmlunit.html.HtmlPage;import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;import com.gargoylesoftware.htmlunit.html.HtmlTable;import com.gargoylesoftware.htmlunit.html.HtmlTableCell;import com.gargoylesoftware.htmlunit.html.HtmlTableRow;import com.gargoylesoftware.htmlunit.html.HtmlTextInput;/** * 运用htmlUnit爬网页 * * @author liming */public class SkyHtmlUnit {    // 充值密码    private static final String transPassword = "xxxx";    // 用户名    private static final String userName = "XXXX";    // 密码    private static final String userPassword = "xxxx";    /**     * 充值     *     * @param transNumber     *            被充值用户号码     * @param transAmount     *            充值金额     */    public static boolean recharge(String transNumber, String transAmount) {        boolean bool = false;        try {            BigDecimal b = new BigDecimal(transAmount);            b = b.setScale(0, BigDecimal.ROUND_DOWN);            WebClient client = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);            List<String> collectedAlerts = new ArrayList<String>();            client.setAlertHandler(new CollectingAlertHandler(collectedAlerts));            HtmlPage page1 = (HtmlPage) client                    .getPage("http://ZXXXX/vams/");            HtmlForm form = (HtmlForm) page1.getForms().get(0);            HtmlTextInput username = (HtmlTextInput) form                    .getInputByName("login:userName");            HtmlPasswordInput password = (HtmlPasswordInput) form                    .getInputByName("login:password");            username.setValueAttribute(userName);            password.setValueAttribute(userPassword);            form.getInputByName("login:j_id_jsp_28762255_4").click();            client.setJavaScriptEnabled(true);            String Recharge = "http://ZXXXX/vams/WebPay/WebTrans.faces";            HtmlPage Recharge1 = (HtmlPage) client.getPage(Recharge);            HtmlForm RechargeForm = (HtmlForm) Recharge1.getForms().get(0);            HtmlTextInput number = (HtmlTextInput) RechargeForm                    .getInputByName("webPayment:transNumber");            HtmlTextInput transAmountt = (HtmlTextInput) RechargeForm                    .getInputByName("webPayment:transAmount");            HtmlPasswordInput transPass = (HtmlPasswordInput) RechargeForm                    .getInputByName("webPayment:transPassword");            // 设置充值密码            transPass.setValueAttribute(transPassword);            // 设置充值金额            transAmountt.setValueAttribute(b.toString());            // 设置充值号码            number.setValueAttribute(transNumber);            RechargeForm.getInputByName("webPayment:j_id_jsp_427518967_10")                    .click();            String returnvalue = collectedAlerts.get(0);            if (returnvalue.equals("充值成功!")) {                bool = true;            }        } catch (Exception e) {            e.printStackTrace();        }        System.out.println("**********充值结束*******");        return bool;    }    /**     * 充值结果查询     *     * @param payNoValue     *            充值号码     * @param beforeTime     *            充值时间前 格式YYYYMMdd     * @param afterTime     *            充值时间后 格式YYYYMMdd     * @param rechargeAmount     *            充值金额     * @throws ParseException     */    public static List<RechargeBean> getRechargeList(String payNoValue,            String beforeTime, String afterTime, String rechargeAmount            ) throws ParseException {        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");        SimpleDateFormat formatX = new SimpleDateFormat("yyyy/MM/dd");        String beforeT = "";        String afterT = "";        if (beforeTime != null && !afterTime.equals("")) {            beforeT = formatX.format(format.parse(beforeTime));        }        if (afterTime != null && !afterTime.equals("")) {            afterT = formatX.format(format.parse(afterTime));        }        // 存储集合        List<RechargeBean> list = new ArrayList<RechargeBean>();        try {            WebClient client = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);            HtmlPage page1 = (HtmlPage) client                    .getPage("http://ZXXXX/vams/");            HtmlForm form = (HtmlForm) page1.getForms().get(0);            HtmlTextInput username = (HtmlTextInput) form                    .getInputByName("login:userName");            HtmlPasswordInput password = (HtmlPasswordInput) form                    .getInputByName("login:password");            username.setValueAttribute(userName);            password.setValueAttribute(userPassword);            form.getInputByName("login:j_id_jsp_28762255_4").click();            client.setJavaScriptEnabled(true);            String Recharge = "http://ZXXXX/vams/WebPay/WebPaySearch.faces?showType=2";            HtmlPage Recharge1 = (HtmlPage) client.getPage(Recharge);            HtmlForm rechargeForm = (HtmlForm) Recharge1.getForms().get(0);            // 充值号码            HtmlTextInput payNo = (HtmlTextInput) rechargeForm                    .getInputByName("form1:payNo");            payNo.setValueAttribute(payNoValue);            // 充值时间:            HtmlTextInput j_id_jsp_1155368641_9 = (HtmlTextInput) rechargeForm                    .getInputByName("form1:j_id_jsp_1155368641_9");            j_id_jsp_1155368641_9.setValueAttribute(beforeT);            HtmlTextInput j_id_jsp_1155368641_11 = (HtmlTextInput) rechargeForm                    .getInputByName("form1:j_id_jsp_1155368641_11");            j_id_jsp_1155368641_11.setValueAttribute(afterT);            // 充值金额            HtmlTextInput j_id_jsp_1155368641_13 = (HtmlTextInput) rechargeForm                    .getInputByName("form1:j_id_jsp_1155368641_13");            j_id_jsp_1155368641_13.setValueAttribute(rechargeAmount);            // button            HtmlSubmitInput button1 = (HtmlSubmitInput) rechargeForm                    .getInputByName("form1:j_id_jsp_1155368641_32");            HtmlPage page12 = (HtmlPage) button1.click();            HtmlForm aa = page12.getForms().get(0);            int divSize = aa.getByXPath("//div[@id='zhu1']").size();            if (divSize > 1) {                HtmlDivision div = (HtmlDivision) aa.getByXPath(                        "//div[@id='zhu1']").get(1);                String aad = div.asText();                int pageNumber = (Integer                        .parseInt(aad.split("共")[2].split("页")[0].trim()));                Map<String, String[]> map = new HashMap<String, String[]>();                int key = 1;                for (int i = 0; i < pageNumber; i++) {                    if (i == 0) {                        DomNodeList<HtmlElement> tables = page12                                .getElementsByTagName("table");                        final HtmlTable table = (HtmlTable) tables.get(tables                                .size() - 1);                        for (final HtmlTableRow row : table.getBodies().get(0).getRows()) {                            String[] alertPring = new String[7];                            int d = 0;                            for (final HtmlTableCell cell : row.getCells()) {                                alertPring[d] = cell.asText();                                d++;                            }                            map.put(key +"", alertPring);                            key++;                        }                    } else {                        HtmlPage ahtmpr = div.getHtmlElementsByTagName("a")                                .get(3).click();                        DomNodeList<HtmlElement> tables2 = ahtmpr                                .getElementsByTagName("table");                        final HtmlTable table = (HtmlTable) tables2.get(tables2                                .size() - 1);                        for (final HtmlTableRow row : table.getBodies().get(0)                                .getRows()) {                            String[] alertPring = new String[7];                            int d = 0;                            for (final HtmlTableCell cell : row.getCells()) {                                alertPring[d] = cell.asText();                                d++;                            }                            map.put(key +"", alertPring);                            key++;                        }                    }                }                Set<String> keyV = map.keySet();                Iterator<String> it2 = keyV.iterator();                while (it2.hasNext()) {                    RechargeBean bean = new RechargeBean();                    String[] values = map.get(it2.next());                    for (int i = 0; i < values.length; i++) {                        bean.setId(values[0]);                        bean.setDate(values[1]);                        bean.setNumber(values[2]);                        bean.setAmount(values[3]);                        bean.setaType(values[4]);                        bean.setsType(values[5]);                        bean.setCgType(values[6]);                    }                    list.add(bean);                }            }            System.out.println("********充值结果查询结束***********");        } catch (Exception e) {            e.printStackTrace();        }        return list;    }    /**     * 返回代理商余额     */    public static String getBalance() {        String balance = "";        try {            WebClient client = new WebClient(BrowserVersion.INTERNET_EXPLORER_8);            HtmlPage page1 = (HtmlPage) client                    .getPage("http://ZXXXX/vams/");            HtmlForm form = (HtmlForm) page1.getForms().get(0);            HtmlTextInput username = (HtmlTextInput) form                    .getInputByName("login:userName");            HtmlPasswordInput password = (HtmlPasswordInput) form                    .getInputByName("login:password");            username.setValueAttribute(userName);            password.setValueAttribute(userPassword);            form.getInputByName("login:j_id_jsp_28762255_4").click();            client.setJavaScriptEnabled(true);            String Recharge = "http://ZXXXX/vams/WebPay/WebPayRemainSearch.faces";            HtmlPage Recharge1 = (HtmlPage) client.getPage(Recharge);            HtmlForm rechargeForm = (HtmlForm) Recharge1.getForms().get(0);            // button按钮请求            HtmlSubmitInput button1 = (HtmlSubmitInput) rechargeForm                    .getInputByName("j_id_jsp_1894475275_1:j_id_jsp_1894475275_32");            HtmlPage page3 = (HtmlPage) button1.click();            DomNodeList<HtmlElement> tables = page3                    .getElementsByTagName("table");            final HtmlTable table = (HtmlTable) tables.get(tables.size() - 1);            for (final HtmlTableRow row : table.getBodies().get(0).getRows()) {                int i = 0;                for (final HtmlTableCell cell : row.getCells()) {                    if (i == 7) {                        HtmlPage page = cell.getHtmlElementsByTagName("a").get(                                0).click();                        DomNodeList<HtmlElement> pagezhu = (DomNodeList<HtmlElement>) page                                .getElementById("zhu1").getElementsByTagName(                                        "td");                        for (int j = 1; j < pagezhu.getLength(); j++) {                            balance = pagezhu.get(1).asText();                        }                    }                    i++;                }            }            System.out.println("*************代理商余额查询结束***********");        } catch (Exception e) {            e.printStackTrace();        }        return balance;    }    public static void main(String[] args) throws ParseException {        // 充值结果查询        // 201120619        List<RechargeBean> list = getRechargeList("", "", "", "");        for (int i = 0; i < list.size(); i++) {            RechargeBean bean = list.get(i);            System.out.println(bean.getDate());        }        // getRechargeList("", "", "", "", "");        // 查询余额        // System.out.println(getBalance());        // 进行充值        // System.out.println(recharge("18911019001", ""));    }}

热点排行