zoukankan      html  css  js  c++  java
  • C++ 提取网页内容系列之三

    标 题: C++ 提取网页内容系列
    作 者: itdef
    链 接: http://www.cnblogs.com/itdef/p/4171659.html 

    欢迎转帖 请保持文本完整并注明出处

    这次继续下载网页后 对其中内容的分析

    使用tr1(c++预备标准库)中的正则式

    void ContentSearchMainRecommend(const string& content)
    {
    	string text = content;
    	string regString( "首页大推','([^']*)'" );
    	string regSubString("<strong class=\"strong color_orange\">([^<]*)</strong>");
    	regex regExpress(regString);
    	regex regSubExpress(regSubString);
    
    
    	//string::size_type pos = content.find(strSearch);
    	smatch ms;
    
    	// 判断是否全行匹配
    	while(regex_search(text, ms, regExpress))
    	{
    		string strResult;
    		if(ms.size() == 2)
    		{
    			strResult = ms.str(1).c_str();
    		}
    		cout << "首页大推:\t" << strResult  << "\t\t";
    		text = ms.suffix().str();
    		if(regex_search(text, ms, regSubExpress))
    		{
    			if(ms.size() == 2)
    			{
    				cout << ms.str(1).c_str() << endl;
    			}
    		}else
    		{
    			cout << "search substring error" << endl;
    			break;
    		}
    	}
    	return ;
    }
    

    正则式的内容 如果不熟悉的话可以参考网络上流传的<30分钟正则式入门>

    但是对于450K的网页 使用正则式匹配似乎比直接搜索要慢上不少

    // 待续

  • 相关阅读:
    python3
    hive与hbase集成
    spark读取hbase形成RDD,存入hive或者spark_sql分析
    spark机器学习笔记01
    CodeForces 55D Beautiful numbers
    NOIP 2016 D2T2 蚯蚓](思维)
    SCOI 2009 围豆豆(状压DP)
    POJ 1852 Ants(贪心)
    STA树的深度(树型DP)
    HDU 5963 朋友 (找规律,思维)
  • 原文地址:https://www.cnblogs.com/itdef/p/4171659.html
Copyright © 2011-2022 走看看