`
cloudgamer
  • 浏览: 61758 次
  • 性别: Icon_minigender_1
  • 来自: 顺德
社区版块
存档分类
最新评论

我来做百科(第二十天) B

 
阅读更多
tag系统完成,再修复一些添加词条,修改内容的问题,就可以做数据采集了。

数据采集网上的资料很多,再结合自己的需要,写了一下代码:
protected void Button1_Click(object sender, EventArgs e)
    
{
        Lemma lemma 
= new Lemma();

        Response.Write(
"采集结果:<br/><br/>");
        Response.Flush();

        
for (int i = 0; i <= 3; i++)
        
{

            
string sUrl = strurl + (i * 10).ToString();

            Response.Write(
"采集url:" + sUrl + "<br/>");
            Response.Flush();

            
foreach (string temp in GetHtmls(@"/view/\d+\.htm", GetUrlHtml(sUrl)))
            
{
                
string url = u + temp;

                
string sHtml = GetUrlHtml(url);

                
string sLemma = GetLemma(sHtml);
                
string sDetail = GetDetail(sHtml);
                
string sTag = GetTag(sHtml);

                
int idLemma = lemma.AddLemma(sLemma, sDetail, "cloud"0string.Empty, url, sTag);

                StringBuilder sb 
= new StringBuilder();
                sb.Append(
"id:").Append(idLemma).Append("<br/> 词条:").Append(sLemma).Append("<br/>");
                sb.Append(
"Tag:").Append(sTag).Append("<br/> 连接:<a href='").Append(url).Append("'' target='_blank'>").Append(url).Append("</a><br/>");

                
if (idLemma > 0)
                
{
                    sb.Append(
"成功!").Append(" <a href='../index/show.aspx?id=").Append(idLemma).Append("' target='_blank'>查看</a>"); ;
                }

                
else
                
{
                    sb.Append(
"失败!错误代码:").Append(idLemma);
                }


                sb.Append(
"<br/><br/>");

                Response.Write(sb.ToString());
                Response.Flush();
            }

        }

    }


    
public static string GetUrlHtml(string url)
    
{
        
string output = "";
        Encoding encode 
= Encoding.Default;
        WebClient webclient 
= new WebClient();
        
try
        
{
            webclient.Headers.Add(
"Referer", url);
            
byte[] buff = webclient.DownloadData(url);
            output 
= encode.GetString(buff);
        }

        
catch
        
{
        }

        
return output;
    }


    
public static string GetHtml(string begin, string end, string content)
    
{
        
return GetHtml(begin + "((.*?\\n?)*?)" + end, content);
    }


    
public static string GetHtml(string pattern, string content)
    
{
        Regex reg 
= new Regex(pattern);
        Match match 
= reg.Match(content);

        
if (match != Match.Empty)
        
{
            
//content = content.Replace(match.Groups[1].ToString(), string.Empty);
            return match.Groups[1].ToString();
        }

        
else
        
{
            
return string.Empty;
        }

    }


    
public static StringCollection GetHtmls(string begin, string end, string content)
    
{
        
return GetHtmls(begin + "((.*?\\n?)*?)" + end, content);
    }


    
public static StringCollection GetHtmls(string pattern, string content)
    
{
        Regex reg 
= new Regex(pattern);
        MatchCollection matches 
= reg.Matches(content);
        StringCollection list 
= new StringCollection();
        
foreach (Match match in matches)
        
{
            
if (match != Match.Empty)
            
{
                list.Add(match.Value);
            }

        }

        
return list;
    }


    
/**//// <summary>
    
/// 正则替换
    
/// </summary>

    public static string ReplaceText(string input, string pattern, string replacement)
    
{
        
if (string.IsNullOrEmpty(input)) return string.Empty;
        Regex rgx 
= new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);
        
return rgx.Replace(input, replacement);
    }


    
/**//// <summary>
    
/// 去标签 包括内容
    
/// </summary>

    public static string ClearWholeTag(string input, string tag)
    
{
        
return ReplaceText(input, @"<" + tag + "[^>]*?>.*?</" + tag + ">""");
    }


    
/**//// <summary>
    
/// 去标签 不包括内容
    
/// </summary>

    public static string ClearTag(string input, string tag)
    
{
        
return ReplaceText(input, @"<\/?" + tag + "[^>]*>""");
    }


    
/**//// <summary>
    
/// 去全部标签
    
/// </summary>

    public static string ClearAllTag(string input)
    
{
        
return ReplaceText(input, @"<\/?[a-zA-Z]+[^>]*>""");
    }


数据采集就是爽,先来三百多条吧,哈哈。
分享到:
评论

相关推荐

    最新三年级上册数学应用题解答问题练习题(及答案)(7).doc

    20. **倍数关系**:第二十题的小猴给小松鼠一个气球后,他们的气球数量关系发生了变化,需要计算新的倍数关系。 21. **年龄问题**:第二十一题涉及年龄和倍数关系,可以设立方程来解出王老师和小明的年龄。 22. **...

    物联网考试题及答案最新版.pdf

    我国居民的第二代身份证采用的是 ( B )RFID 技术。 A.低频 B.中高频 C.超高频 D.微波 6、RFID 技术实质是一个基于( C )发展出来的一种自动识别技 术,是一种可以将物品编码采用无线标签方式进行记录和供读取的小 型...

    七年级历史下册 第20课 明清的科学技术同步练习(无答案) 中华书局版(通用).doc

    这本书按照“贵五谷而贱金玉”的理念排序,强调实用性和农业的重要性,被誉为“中国17世纪的工艺百科全书”。 5. **徐光启与《农政全书》**:徐光启是明末的农学家,他的《农政全书》是中国古代农学的集大成之作,...

    20秋吉大《文献检索》在线作业二-0002答卷.docx

    7. 大型综合性百科全书:《大英百科全书》具有最长的历史、最大的影响力和权威性。 8. 截词符号:在DIALOG系统中,截词符号通常用“?”表示。 9. OSI参考模型的第四层:这一层是传输层,负责端到端的数据传输。 ...

    2021专升本大学语文考试题(1).pdf

    4. “人类历史上第一个真正揭示知识的真正意义的人”是培根(C),他提出了知识就是力量的观点。 8. 未提供具体内容,无法解析主旨。 14. 《虞美人》是一首抒情词(B),通常表达个人情感或感慨。 20. “易安居士...

    C语言程序设计60题.doc

    - **条件语句**: 使用`if`语句来判断字符类型。 - **ASCII码**: 了解不同字符类型的ASCII码范围。 **代码示例**: ```c #include int main() { char ch; printf("请输入一个字符: "); scanf("%c", &ch); if ...

    2018年“互联网”开放合作试题__多选.pdf

    【多选题】第(15)题:20世纪90年代,中国启动了一系列重大信息化应用工程,其中“金关”、“金卡”、“金税”是重要的代表。“金关”是为了提高海关信息化管理水平;“金卡”旨在推动银行卡产业的发展;“金税”则...

    七年级历史下册 第三单元 第20课 明清的科学技术导学案(无答案) 中华书局版.doc

    - 张小泉剪刀属于手工业制品,因此查阅《天工开物》最合适,答案是B.《天工开物》。 10. **人与自然协调的科学家** - 强调人与自然和谐相处的科学家是宋应星,因此正确答案是C.宋应星。 11. **秦朝与明朝长城的...

    五年级小学生心理健康教育期末试卷.pdf

    2. 第二题关注有意义的活动选择,A、B、D选项都有利于个人成长,而C选项(打电子游戏机)被标记为无意义,提醒孩子们要合理安排娱乐时间。 3. 第三题提到学习勤奋的表现,B选项(上课时不认真听讲和记笔记)是反面...

    自己动手写操作系统(含源代码).part2

    我想,虽然第二版有着这样那样的变化,但有一点没有变,那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初的思路和编码过程呈现出来。很可能读者比我更聪明,有更好的解决...

    中国医科大学20秋《现代远程学习概论》在线作业答案.docx

    网络学习资源包括各种类型,如NKI中国知网提供学术论文检索,数字图书馆提供在线图书和期刊阅读,维基百科是百科全书式的知识库,而知识网络服务平台可能涵盖多个资源。所以,选项B符合描述。 课程总评成绩通常由...

    自己动手写操作系统(含源代码).part1

    我想,虽然第二版有着这样那样的变化,但有一点没有变,那就是本书试图将我在编写自己操作系统的过程中的经验尽可能地告诉读者,同时尽可能将我当初的思路和编码过程呈现出来。很可能读者比我更聪明,有更好的解决...

    互联网营销基础考试答案

    C、百度百科是企业第一品牌门户;D、百度贴吧一般企业不要轻易开通 - **解析**: 这些百度产品各有其应用场景和特点,企业可以根据自身需求选择合适的产品进行推广。 23. **网络营销的正确描述** - **答案**: A、...

    海师附小六年级数学模拟考试题1.pdf

    3. **比例尺计算**:第二题的比例尺是图纸上的长度与实际长度的比例,10厘米对应5毫米,比例尺为20:1。 4. **长方体外表积**:第三题,挖掉一个小正方体,外表积不变。 5. **分数比较**:第四题,4/3与4/3米的...

    encyclopedia database systems 2nd

    ### 数据库系统百科全书第二版 #### 一、概览与重要性 《数据库系统百科全书》第二版是一部全面覆盖数据库系统领域的权威参考书籍。由Ling Liu(美国佐治亚理工学院计算机学院)和M. Tamer Özsu(加拿大滑铁卢...

    公需课考试题目-9页.pdf

    9. 二次创业的学习过程:二次创业时,缩短学习过程并减少失误是重要的,但题目的判断是错误的(B)。这意味着创业者需要更加谨慎地学习和避免犯错。 10. 食材B2B自营模式:食材B2B的自营模式财务成本相对较高,因为...

    三年级上册数学应用题解答问题训练经典题目50(3).doc

    12. 重量问题:两包茶叶的总重量为1/2千克+3/4千克=5/4千克,第一包比第二包轻1/4-1/2=-1/4千克。 13. 幼虫成长问题:逆向思维,从16厘米倒推,16÷2=8厘米,再用8÷2=4厘米,所以4厘米时是4天。 14. 钓鱼问题:设...

    上海高校计算机一级等级考试E卷.pdf

    4. 编辑第三行第二列的表格,设置宽度为所在单元格的90%,第一列居中,宽度占表格的15%。最后一行文字链接至百度百科。 5. 在第四行插入表单,设置预选项,添加提交和重置按钮,保持表单下方居中。 **四、多媒体...

    新部编版三年级数学上册期末考试题.pdf

    - 大象食物够不够:20天需要的食物量是240*20,检查是否小于5吨。 - 最少需要的花瓶数:45枝花除以6枝每瓶,向上取整。 这些题目覆盖了小学三年级数学的主要内容,包括基本的算术运算、几何概念、时间与单位转换...

Global site tag (gtag.js) - Google Analytics