@Override
    protected Void doInBackground() {
        String htmlPage = "";

        try {
            htmlPage = HttpDownloader.getString(rule.getRuleURL());
        } catch (MalformedURLException ex) {
            //this.cancel(true);
            return null;
        } catch (IOException ex) {
            //this.cancel(true);
            return null;
        }

        RuleDrivenTextParser rdtp = new RuleDrivenTextParser(rule);

        try {
            URL url = new URL(rule.getRuleURL());
            ArrayList<String> resultList = rdtp.parseTextByRule(htmlPage);
            if (resultList.size() > 0) {
                for (String s : resultList) {
                    publish(new RuleTaskState(-1, url.getProtocol() + "://" + url.getHost() + s));
                }
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }

        return null;
    }