Exemple #1
0
        public LaoHLDayEx(ZHtmlParser pr)
        {
            // EXAMPlE: m_yearOrder = new LaoHLEntryEx("岁次", "//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[1]/td[2]/text()", 0); // 注意:xpath 里的 tbody 须忽略!!!

            for (int i = 0; i < m_length; i++)
            {
                m_ancient_hour[i] = new LaoHLEntryEx("时辰简称", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[1]/td[{0}]/text()", i + 2));
                m_solar_time_start[i] = new LaoHLEntryEx("时刻开始", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[2]/td[{0}]/text()", i + 2), 0);
                m_solar_time_end[i] = new LaoHLEntryEx("时刻结束", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[2]/td[{0}]/text()", i + 2), 1);
                m_ancient_hour_fullname[i] = new LaoHLEntryEx("时辰全称", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[3]/td[{0}]/text()", i + 2));
                m_star_god[i] = new LaoHLEntryEx("星神", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[4]/td[{0}]/text()", i + 2));
                m_straight_confict[i] = new LaoHLEntryEx("正冲", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[5]/td[{0}]/text()", i + 2));
                m_good_ill_luck[i] = new LaoHLEntryEx("吉凶", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[6]/td[{0}]", i + 2));
                m_zodiac_timed[i] = new LaoHLEntryEx("生肖", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[7]/td[{0}]/text()", i + 2));
                m_good_god[i] = new LaoHLEntryEx("吉神", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[8]/td[{0}]/div", i + 2));
                m_ill_god[i] = new LaoHLEntryEx("凶煞", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[9]/td[{0}]/div", i + 2));
                m_well_timed[i] = new LaoHLEntryEx("时宜", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[10]/td[{0}]/div", i + 2));
                m_bad_timed[i] = new LaoHLEntryEx("时忌", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[11]/td[{0}]/div", i + 2));
                m_fiveElem_timed[i] = new LaoHLEntryEx("五行", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[12]/td[{0}]/text()", i + 2));
                m_conflict_orientation[i] = new LaoHLEntryEx("煞方", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[13]/td[{0}]/text()", i + 2));
                m_happy_god[i] = new LaoHLEntryEx("喜神", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[14]/td[{0}]/text()[1]", i + 2), 0);
                m_fortune_god[i] = new LaoHLEntryEx("财神", string.Format("//*[@id=\"USkin_bk\"]/table[14]/tr/td/div/table[1]/tr[14]/td[{0}]/text()[2]", i + 2), 0);

                // 额外处理
                m_good_ill_luck[i].m_customParser = getGoodIllLuckValue;

                // 为Entry 实例的 Parser 对象赋值,将会同时完成相应数值的解析
                m_ancient_hour[i].Parser = pr;
                m_ancient_hour_fullname[i].Parser = pr;
                m_solar_time_start[i].Parser = pr;
                m_solar_time_end[i].Parser = pr;
                m_star_god[i].Parser = pr;
                m_straight_confict[i].Parser = pr;
                m_good_ill_luck[i].Parser = pr;
                m_zodiac_timed[i].Parser = pr;
                m_good_god[i].Parser = pr;
                m_ill_god[i].Parser = pr;
                m_well_timed[i].Parser = pr;
                m_bad_timed[i].Parser = pr;
                m_fiveElem_timed[i].Parser = pr;
                m_conflict_orientation[i].Parser = pr;
                m_happy_god[i].Parser = pr;
                m_fortune_god[i].Parser = pr;
            }
        }
            public SinaHLEntryEx m_zodiac; // 生肖

            #endregion Fields

            #region Constructors

            public SinaHLDayEx(ZHtmlParser pr)
            {
                m_date        = new SinaHLEntryEx("公历","//*[@id=\"con01-0\"]/div[2]/div[2]/p/text()",0);
                m_solarDate   = new SinaHLEntryEx("公历", "//*[@id=\"con01-0\"]/div[2]/div[2]/p/text()", 0);
                m_lunarDate   = new SinaHLEntryEx("农历","//*[@id=\"con01-0\"]/div[2]/div[2]/p/text()", 1);
                m_yearOrder   = new SinaHLEntryEx("岁次","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[1]/td[2]/text()",0); // 注意:xpath 里的 tbody 须忽略!!!
                m_zodiac      = new SinaHLEntryEx("岁次","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[1]/td[2]/text()",1);
                m_monthOrder  = new SinaHLEntryEx("岁次","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[1]/td[2]/text()",2);
                m_dayOrder    = new SinaHLEntryEx("岁次","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[1]/td[2]/text()",3);
                m_birthGod    = new SinaHLEntryEx("日胎神占方","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[2]/td[2]/text()");
                m_fiveElem    = new SinaHLEntryEx("五行","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[3]/td[2]/text()");
                m_collide     = new SinaHLEntryEx("冲", "//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[4]/td[2]/text()");
                m_pengAvoid   = new SinaHLEntryEx("彭祖百忌","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[5]/td[2]/text()");
                m_goodAngelYi = new SinaHLEntryEx("吉神宜趋","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[6]/td[2]/text()");
                m_evilAngelJi = new SinaHLEntryEx("凶神宜忌", "//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[8]/td[2]/text()");
                m_Yi = new SinaHLEntryEx("宜","//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[7]/td[2]/text()");
                m_Ji = new SinaHLEntryEx("忌", "//*[@id=\"con01-0\"]/div[2]/div[2]/table/tr[9]/td[2]/text()");

                // 为Entry 实例的 Parser 对象赋值,将会同时完成相应数值的解析
                m_date.Parser = pr;
                m_solarDate.Parser = pr;
                m_lunarDate.Parser = pr;
                m_yearOrder.Parser = pr;
                m_zodiac.Parser = pr;
                m_monthOrder.Parser = pr;
                m_dayOrder.Parser = pr;
                m_birthGod.Parser = pr;
                m_fiveElem.Parser = pr;
                m_collide.Parser = pr;
                m_pengAvoid.Parser = pr;
                m_goodAngelYi.Parser = pr;
                m_evilAngelJi.Parser = pr;
                m_Yi.Parser = pr;
                m_Ji.Parser = pr;
            }
        private string getOutputFileName(int pageIdx)
        {
            string filename = null;

            if (m_strHtml != null && m_strHtml != "")
            {
                ZHtmlParser pr = new ZHtmlParser(m_strHtml);
                Entry entry = new Entry(pr);
                entry.xpath = "//*[@id=\"con01-0\"]/div[2]/div[2]/p/text()";

                string[] values = entry.val.Split(' ');
                string fex = values[0];

                filename = string.Format("{0}\\{1}.{2}.{3}", _SINAHUANGDAOBOOK_DIR_, _OUTFILE_PREFIX_, fex, "html");
            }
            else
            {
                filename = string.Format("{0}\\{1}.{2}.{3}", _SINAHUANGDAOBOOK_DIR_, _OUTFILE_PREFIX_, pageIdx, "html");
            }

            return filename;
        }
        public int parseHLDayFiles(string dirpath)
        {
            int nResult = 0;

            SinaHDDB db = new SinaHDDB();
            db.initDb();

            string[] filenames = Directory.GetFiles(dirpath);
            foreach (string fn in filenames)
            {
                FileStream fs = new FileStream(fn, FileMode.Open);
                if (fs != null)
                {
                    TextReader tr = new StreamReader(fs);
                    string strHtml = tr.ReadToEnd();
                    ZHtmlParser htmlParser = new ZHtmlParser(strHtml);
                    SinaHLDayEx hlday = new SinaHLDayEx(htmlParser);

                    db.saveToDb(hlday);

                    tr.Close();
                }
                fs.Close();
            }
            db.closeDb();
            return nResult;
        }
        private string getOutputFileName(int pageIdx)
        {
            // return string.Format("{0}\\{1}.{2}", _BIRTHDAYBOOK_DIR_, i, Path.GetFileName(Path.GetTempFileName()));

            string filename = null;

            if (m_strHtml != null && m_strHtml != "")
            {
                ZHtmlParser pr = new ZHtmlParser(m_strHtml);
                Entry entry = new Entry(pr);
                entry.xpath = "//*[@id=\"wrap\"]/h3/text()";

                filename = string.Format("{0}\\{1}.{2}.{3}", _MONTHDAYBOOK_DIR_, _OUTFILE_PREFIX_, entry.val, "html");
            }
            else
            {
                filename = string.Format("{0}\\{1}.{2}.{3}", _MONTHDAYBOOK_DIR_, _OUTFILE_PREFIX_, pageIdx, "html");
            }

            return filename;
        }
 public BookEntry(ZHtmlParser pr)
 {
     _parser = pr;
 }
        private void parseWebData()
        {
            string strHtml = readTmpData(m_tmp_filename);

            if (strHtml != null && strHtml != "")
            {
                ZHtmlParser htmlParser = new ZHtmlParser(strHtml);

                BookEntry Characters = new BookEntry();
                Characters.Parser = htmlParser;
                Characters.name.xpath = "//*[@id=\"wrap\"]/p[1]/text()";
                Characters.summary.xpath = "//*[@id=\"wrap\"]/p[2]/text()";
                Characters.description.xpath = "//*[@id=\"wrap\"]/p[3]/text()";

                BookEntry Affection = new BookEntry();
                Affection.Parser = htmlParser;
                Affection.name.xpath = "//*[@id=\"wrap\"]/p[5]/text()";
                Affection.summary.xpath = "//*[@id=\"wrap\"]/p[6]/text()";
                Affection.description.xpath = "//*[@id=\"wrap\"]/p[7]/text()";

                BookEntry MoneyLuck = new BookEntry();
                MoneyLuck.Parser = htmlParser;
                MoneyLuck.name.xpath = "//*[@id=\"wrap\"]/p[8]/text()";
                MoneyLuck.summary.xpath = "//*[@id=\"wrap\"]/p[9]/text()";
                MoneyLuck.description.xpath = "//*[@id=\"wrap\"]/p[10]/text()";

                BookEntry CareerLuck = new BookEntry();
                CareerLuck.Parser = htmlParser;
                CareerLuck.name.xpath = "//*[@id=\"wrap\"]/p[11]/text()";
                CareerLuck.summary.xpath = "//*[@id=\"wrap\"]/p[12]/text()";
                CareerLuck.description.xpath = "//*[@id=\"wrap\"]/p[13]/text()";

                BookEntry HealthLuck = new BookEntry();
                HealthLuck.Parser = htmlParser;
                HealthLuck.name.xpath = "//*[@id=\"wrap\"]/p[14]/text()";
                HealthLuck.summary.xpath = "//*[@id=\"wrap\"]/p[15]/text()";
                HealthLuck.description.xpath = "//*[@id=\"wrap\"]/p[16]/text()";

                BookEntry LuckyNumber = new BookEntry();
                LuckyNumber.Parser = htmlParser;
                LuckyNumber.name.xpath = "//*[@id=\"wrap\"]/p[17]/text()";
                LuckyNumber.summary.xpath = "//*[@id=\"wrap\"]/p[18]/text()";
                LuckyNumber.description.xpath = "//*[@id=\"wrap\"]/p[19]/text()";

                BookEntry MatchLover = new BookEntry();
                MatchLover.Parser = htmlParser;
                MatchLover.name.xpath = "//*[@id=\"wrap\"]/p[20]/text()";
                MatchLover.summary.xpath = "";
                MatchLover.description.xpath = "//*[@id=\"wrap\"]/p[22]/text()";

                BookEntry MatchFriend = new BookEntry();
                MatchFriend.Parser = htmlParser;
                MatchFriend.name.xpath = "//*[@id=\"wrap\"]/p[22]/text()";
                MatchFriend.summary.xpath = "";
                MatchFriend.description.xpath = "//*[@id=\"wrap\"]/p[23]/text()";
            }
        }
Exemple #8
0
        public int parseHLDayFiles(string dirpath)
        {
            int nResult = 0;

            HdDBHelper db = new HdDBHelper();

            string[] filenames = Directory.GetFiles(dirpath);
            foreach (string fn in filenames)
            {
                FileStream fs = new FileStream(fn, FileMode.Open);
                if (fs != null)
                {
                    TextReader tr = new StreamReader(fs);
                    string strHtml = tr.ReadToEnd();
                    ZHtmlParser htmlParser = new ZHtmlParser(strHtml);
                    LaoHLDayEx lhlday = new LaoHLDayEx(htmlParser);

                    db.saveToDb(lhlday);

                    tr.Close();
                }
                fs.Close();
            }

            return nResult;
        }