你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 网络与通信
Boost.Regex网页信息抽取(四)
 

s=boost::regex_replace(s,expression,"");

    boost::regex expression1("(<style.*?>)(.*?)(</style>)",Para); //去除样式

    s=boost::regex_replace(s,expression1,"");

    boost::regex expression2("(<!--.*?-->)",Para); //去除注释

    s=boost::regex_replace(s,expression2,"");

    htmlcode=s.c_str(); //stirng类型转换为CString类型

    return htmlcode;

}

CString CHtmlcodeIE::ExtractAllText(CString htmlcode)

{

    std::string s=(string)htmlcode;

    boost::regex expression("(.*?)(<.*?>)(.*?)",Para);

    s=boost::regex_replace(s,expression,"$1$3");  //$2为保留标记

    htmlcode=s.c_str();

    return htmlcode;

}

CString CHtmlcodeIE::ExtractTextA(CString htmlcode)

{

    CString str,ret,retstr,groupstr; 

    boost::regex express("((?:option .*?value=[\"|\'](.*?)[\"|\'].*?)|(?:a .*?href=[\"|\'](.*?)[\"|\'].*?))>([^>]+)<",Para);

    boost::cmatch result;   //匹配结果变量

    str=htmlcode;

    while(boost::regex_search(str, result, express))

    {  

        groupstr="";

        for(int i=result.size()-1; i>=2; i--)

        {           

            ret = result[i].str().c_str();

            if(i==result.size()-1)

            {

                    ret=DeleteTag(ret); //如果是文本,过滤其中的无用代码

                if(ret=="")

                {  break;}

            }

            if(ret!="")

            {  groupstr=groupstr+ret+" "; }

        }

        if(groupstr!="")

        {  retstr=retstr+groupstr+"\r\n"; }

        str = result[result.size()].second;

    }
  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089