`
dcdc723
  • 浏览: 187493 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用C#写的一个采集某大型B2C数据的程序(数据采集)

    博客分类:
  • net
阅读更多
using System;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
namespace web
{
    public partial class dang : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            WebClient wc = new WebClient();
            byte[] bt = wc.DownloadData(@"网址");
            string res = Encoding.Default.GetString(bt);
            res = Regex.Replace(res, @"<!DOCTYPE .*?第1页", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            res = Regex.Replace(res, @"<!--页尾 开始 -->.*?</html>", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            res = Regex.Replace(res, @"<div id=""divBottomPageNavi"".*?</div>.*?</div>.*?</div>.*?</div>", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            res = Regex.Replace(res, @"</div><div class='list_r_title_text3a'>.*?list_r_line""></div>", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            res = Regex.Replace(res, @"<div class=""clear"">.*?", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);

            res = Regex.Replace(res, @"<div class=""list_r_list"">.*?<h2>", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            res = Regex.Replace(res, @"</h2>.*?</div>.*?</div>", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            res = Regex.Replace(res, @"<a name=""link_prd_name"" href='", "");
            res = Regex.Replace(res, @"' target=""_blank"">", "ww");
            res = Regex.Replace(res, @"ww.*?</a>", "");
            res = Regex.Replace(res, "</div>", ";");
            res = res.Substring(0, res.Length - 1).ToString();
            string[] ress = res.Split(';');
            for (int i = 0; i < ress.Length - 1; i++)
            {

                WebClient wc1 = new WebClient();
                string ur = @"" + ress[i] + "";
                byte[] bt1 = wc.DownloadData(ur);
                string res1 = Encoding.Default.GetString(bt1);
                res1 = Regex.Replace(res1, @"<!DOCTYPE .*?您最近的浏览历史", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
                res1 = Regex.Replace(res1, @"<h2 class=""black14"">.*?<!--价格购买区结束-->", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);
                res1 = Regex.Replace(res1, @"<a name=""review_point""></a>.*?</html>", string.Empty, RegexOptions.IgnoreCase | RegexOptions.Singleline);


                // Response.Write(res1);
                Regex chubantime = new Regex(@"<li>出版时间:.*?</li>");
                if (chubantime.IsMatch(res1))
                {
                    string chubantime1 = chubantime.Match(res1).Value.ToString();
                    chubantime1 = Regex.Replace(chubantime1, "<li>出版时间:", "");
                    chubantime1 = Regex.Replace(chubantime1, "</li>", "");
                    Response.Write(chubantime1.Trim() + "<br>");
                }
                Regex zishu = new Regex(@"<li>字  数:.*?</li>");
                if (zishu.IsMatch(res1))
                {
                    string zishu1 = zishu.Match(res1).Value.ToString();
                    zishu1 = Regex.Replace(zishu1, "<li>字  数:", "");
                    zishu1 = Regex.Replace(zishu1, "</li>", "");
                    Response.Write(zishu1.Trim() + "<br>");
                }
                Regex banci = new Regex(@"<li>版  次:.*?</li>");
                if (banci.IsMatch(res1))
                {
                    string banci1 = banci.Match(res1).Value.ToString();
                    banci1 = Regex.Replace(banci1, "<li>版  次:", "");
                    banci1 = Regex.Replace(banci1, "</li>", "");
                    Response.Write(banci1.Trim() + "<br>");
                }
                Regex yeshu = new Regex(@"<li>页  数:.*?</li>");
                if (yeshu.IsMatch(res1))
                {
                    string yeshu1 = yeshu.Match(res1).Value.ToString();
                    yeshu1 = Regex.Replace(yeshu1, "<li>页  数:", "");
                    yeshu1 = Regex.Replace(yeshu1, "</li>", "");
                    Response.Write(yeshu1.Trim() + "<br>");
                }
                Regex yshsj = new Regex(@"<li>印刷时间:.*?</li>");
                if (yshsj.IsMatch(res1))
                {
                    string yshsj1 = yshsj.Match(res1).Value.ToString();
                    yshsj1 = Regex.Replace(yshsj1, "<li>印刷时间:", "");
                    yshsj1 = Regex.Replace(yshsj1, "</li>", "");
                    Response.Write(yshsj1.Trim() + "<br>");
                }
                Regex kaiben = new Regex(@"<li>开  本:.*?</li>");
                if (kaiben.IsMatch(res1))
                {
                    string kaiben1 = kaiben.Match(res1).Value.ToString();
                    kaiben1 = Regex.Replace(kaiben1, "<li>开  本:", "");
                    kaiben1 = Regex.Replace(kaiben1, "</li>", "");
                    Response.Write(kaiben1.Trim() + "<br>");
                }





                Regex yinci = new Regex(@"<li>印  次:.*?</li>");
                if (yinci.IsMatch(res1))
                {
                    string yinci1 = yinci.Match(res1).Value.ToString();
                    yinci1 = Regex.Replace(yinci1, "<li>印  次:", "");
                    yinci1 = Regex.Replace(yinci1, "</li>", "");
                    Response.Write(yinci1.Trim() + "<br>");
                }


                Regex zhizhang = new Regex(@"<li纸  张:.*?</li>");
                if (zhizhang.IsMatch(res1))
                {
                    string zhizhang1 = zhizhang.Match(res1).Value.ToString();
                    zhizhang1 = Regex.Replace(zhizhang1, "<li>纸  张:", "");
                    zhizhang1 = Regex.Replace(zhizhang1, "</li>", "");
                    Response.Write(zhizhang1.Trim() + "<br>");
                }

                Regex isbnn = new Regex(@"<li>I S B N    :.*?</li>");
                if (isbnn.IsMatch(res1))
                {
                    string isbnn1 = isbnn.Match(res1).Value.ToString();
                    isbnn1 = Regex.Replace(isbnn1, "<li>I S B N    :", "");
                    isbnn1 = Regex.Replace(isbnn1, "</li>", "");
                    Response.Write(isbnn1.Trim() + "<br>");
                }

                Regex baozhuang = new Regex(@"<li>包  装:.*?</li>");
                if (baozhuang.IsMatch(res1))
                {
                    string baozhuang1 = baozhuang.Match(res1).Value.ToString();
                    baozhuang1 = Regex.Replace(baozhuang1, "<li>包  装:", "");
                    baozhuang1 = Regex.Replace(baozhuang1, "</li>", "");
                    Response.Write(baozhuang1.Trim() + "<br>");
                }

                Regex chubanshe = new Regex(@"<div id='publisher_'>出 版 社:.*?</div>");
                if (chubanshe.IsMatch(res1))
                {
                    string chubanshe1 = chubanshe.Match(res1).Value.ToString();
                    chubanshe1 = Regex.Replace(chubanshe1, "<div id='publisher_'>出 版 社:", "");
                    chubanshe1 = Regex.Replace(chubanshe1, "</div>", "");
                    Response.Write(chubanshe1.Trim() + "<br>");
                }

                Regex zuozhe = new Regex(@"<div id='author_' >作  者:.*?</div>");
                if (zuozhe.IsMatch(res1))
                {
                    string zuozhe1 = zuozhe.Match(res1).Value.ToString();
                    zuozhe1 = Regex.Replace(zuozhe1, "<div id='author_' >作  者:", "");
                    zuozhe1 = Regex.Replace(zuozhe1, "</div>", "");
                    Response.Write(zuozhe1.Trim() + "<br>");
                }

                Regex dingjia = new Regex(@"<span class=""gray87"">定价:<span class=""del"">.*?</span></span>");
                if (dingjia.IsMatch(res1))
                {
                    string dingjia1 = dingjia.Match(res1).Value.ToString();
                    dingjia1 = Regex.Replace(dingjia1, @"<span class=""gray87"">定价:<span class=""del"">", "");
                    dingjia1 = Regex.Replace(dingjia1, "</span></span>", "");
                    Response.Write(dingjia1.Trim() + "<br>");
                }

                Regex jiage = new Regex(@"<span class=""redc30"">价格:.*?</b></span>");
                if (jiage.IsMatch(res1))
                {
                    string jiage1 = jiage.Match(res1).Value.ToString();
                    jiage1 = Regex.Replace(jiage1, @"<span class=""redc30"">价格:<b>", "");
                    jiage1 = Regex.Replace(jiage1, "</b></span>", "");
                    Response.Write(jiage1.Trim() + "<br>");
                }


                Regex neirong = new Regex(@"内容简介</h2> <div class=""right_content"">.*?</div><div class=""dashed"">");
                if (neirong.IsMatch(res1))
                {
                    string neirong1 = neirong.Match(res1).Value.ToString();
                    neirong1 = Regex.Replace(neirong1, @"内容简介</h2> <div class=""right_content"">", "");
                    neirong1 = Regex.Replace(neirong1, @"</div><div class=""dashed"">", "");
                    Response.Write(neirong1.Trim() + "<br>");
                }

                Regex mulu = new Regex(@"目录</h2> <div class=""right_content"">.*?</div>");
                if (mulu.IsMatch(res1))
                {
                    string mulu1 = mulu.Match(res1).Value.ToString();
                    mulu1 = Regex.Replace(mulu1, @"目录</h2> <div class=""right_content"">", "");
                    mulu1 = Regex.Replace(mulu1, "</div>", "");
                    Response.Write(mulu1.Trim() + "<br>");
                }

                Regex phs = new Regex(@"<img src="".*?id=""img_show_prd""/>");
                if (phs.IsMatch(res1))
                {
                    string phs1 = phs.Match(res1).Value.ToString();
                    phs1 = Regex.Replace(phs1, @"<img src=""", "");
                    phs1 = Regex.Replace(phs1, @"""  id=""img_show_prd""/>", ""); //小图
                   string phsname = Regex.Replace(phs1,@"http.*?\.com/\d.*/\d.*/",string.Empty,RegexOptions.IgnoreCase|RegexOptions.Singleline);
                    Response.Write("图片名"+phsname+"<br>");
                    string phbb = phs1.Substring(0, phs1.Length - 5) + "o.jpg"; //大图
                    //WebClient WCs = new WebClient();
                    //WebClient WCb = new WebClient();
                    //WCp.DownloadFile(@"http://www.XXX.com/img/XXX_logo.gif", Server.MapPath("XX.gif"));
                    //WCs.DownloadFile(@"""phs1""",Server.MapPath(""));
                    //WCs.DownloadFile(@"""phbb""");
                    Response.Write(phs1 + "<br>");
                    Response.Write(phbb + "<br>");
                }

                //Regex phb = new Regex(@"<a class=""gray878787a"" href=""javascript:ImgBtnChgPrd_Click\(this,'(.*?)'\)"" name=""bigpicture"">点击查看大图</a></div>");
                //if (phb.IsMatch(res1))
                //{
                //    string  phb1 = phs.Match(res1).Value.ToString();
                //        phb1 = Regex.Replace(phb1, @"this,'", "");
                //        phb1 = Regex.Replace(phb1, @"'\)"" name=""bigpicture"">点击查看大图</a></div>", ""); //大图
                //    Response.Write(phb1);
                //}


            }





            WebClient WCp = new WebClient();
            WCp.DownloadFile(@"http://www.XXX.com/img/XXX_logo.gif", Server.MapPath("XXX.gif"));  //这里是用WEBCLIENT保存图片

        }
    }
}

 

此处只列出了.CS文件

1
1
分享到:
评论
1 楼 dcdc723 2010-01-29  
通过后台创建Javascript到前台
建一个方法
StringBuilder createJSScript = new StringBuilder("var intIndex=0;arrList = new Array(); "); ;
createJSScript.Append(" function smanPromptList(arrList,objInputId){ \n");
        createJSScript.Append("\n");
ClientScript.RegisterClientScriptBlock(this.GetType(), "arrList", createJSScript.ToString(), true);
再在page_load事件里调用这个方法

相关推荐

    C# 数据采集系统 智能采集 数据分析 整套源码

    总的来说,"C# 数据采集系统 智能采集 数据分析 整套源码"是一个综合性的项目,涵盖了从网络数据采集、智能策略、数据处理、数据库操作到系统架构等多个方面的知识。通过深入理解并实践这套源码,开发者可以提升在...

    采集数据程序_采集数据_C#数据采集_数据采集c++_

    数据采集是IT领域中至关重要的一个环节,它涉及到从各种来源获取信息并将其转化为可分析的数据。在这个过程中,编程语言的选择对于实现高效、精准的数据采集至关重要。标题中的"采集数据程序_采集数据_C#数据采集_...

    Daq_Test.zip_C# ni8501卡_DAQ C#_NI采集程序_采集

    标题中的“Daq_Test.zip_C# ni8501卡_DAQ C#_NI采集程序_采集”揭示了本主题的核心内容,这是一个关于使用C#编程语言与NI(National Instruments)ni8501数据采集卡进行数据采集的程序。在IT领域,DAQ(Data ...

    抄表源码.rar_C#_抄表_数据采集_智能电表数据_采集

    抄表源码是一个基于C#语言开发的程序,主要用于实现智能电表的数据自动采集功能。在现代电力系统中,智能电表已经广泛应用,能够实时、准确地记录电力消耗,为电网管理和用户提供了极大的便利。本项目的核心就是实现...

    C# Modbus TCP/IP数据采集程序

    总的来说,"C# Modbus TCP/IP数据采集程序"是一个结合了C#网络编程、Modbus协议理解和CSV数据处理的综合性项目。通过这样的程序,可以方便地从Modbus TCP/IP设备获取实时数据,并将其整理存储,为数据分析和监控提供...

    c#上位机数据采集源代码

    【标题】"C#上位机数据采集源代码"是一个基于C#编程语言开发的数据采集系统,主要用于收集、处理和展示来自多个串行接口的数据。这个系统设计为10路串口同时工作,能高效地从不同的硬件设备接收数据,如传感器、控制...

    优化数据采集程序_Opc采集程序_opc协议dcs字段_opc_C#_DCS_

    通过以上步骤,我们可以构建一个高效且可靠的数据采集程序,用于监控和分析DCS系统的运行状况,从而为工厂的生产决策提供有价值的信息。在实际应用中,还需要考虑数据的安全性、系统的可扩展性和与其他系统的集成...

    C# 数据采集器读写 实例源码(硬件读写)

    在接收到数据后,会有一个事件处理函数进行数据的解析和业务逻辑处理。同时,为了保证用户界面的响应性,通常会使用异步操作来读取和写入数据。 通过这个实例源码,你可以学习到如何在C#中实现上述功能,了解实际...

    C# 双色球网页数据采集

    在IT行业中,数据采集是一项重要的...对于学习Web爬虫、数据采集和C#编程的开发者来说,这是一个很好的实践案例。通过深入理解并应用这些技术,开发者可以扩展到其他类似的数据采集项目,如股票市场数据、天气预报等。

    PLC数据采集程序

    综上所述,"PLC数据采集程序"涵盖了C#编程、工业通讯协议、数据处理、界面设计等多个方面,是一个综合性的自动化工程应用。通过学习和实践这类项目,开发者可以深入理解工业自动化领域的软件开发。

    C#,实时接收数据,C#数据采集,C#

    在本文中,我们将深入探讨如何使用C#进行数据采集,特别是在实时接收和显示温湿度传感器数据方面的应用。C#是一种广泛用于开发桌面应用程序、Web应用程序和游戏的编程语言,其强大的功能和易用性使得它成为实现...

    C#三菱CNC通讯,用于C#与三菱数控系统的数据采集

    本主题聚焦于使用C#与三菱数控系统(Mitsubishi CNC)进行通信,实现数据采集。这是一项重要的功能,因为能够实时监控和控制机床状态,提升生产效率和质量。 首先,三菱CNC通讯.EXE文件是一个安装程序,用于安装与...

    myDataCollect.zip_c# 串口 曲线_串口 CSharp_采集 CSharp_采集 实时 数据_采集曲线

    本文将深入探讨如何利用C#进行串口数据采集,并结合曲线实时显示的功能,构建一个医疗器械测试工具。这个工具能够动态显示并保存接收到的数据,具有很高的实用价值。 首先,让我们了解C#中的串口通信。在C# .NET...

    c#数据采集类 .net采集类

    从给定的代码片段来看,这是一个C#类库的一部分,主要功能是实现网络数据采集,包括生成随机命名的字符串、获取文件扩展名以及获取远程HTML代码。以下是对这些功能的详细解析: ### 1. 随机命名的字符串生成(`...

    C# 串口程序采集串口数据

    在"C# 串口程序采集串口数据"这个主题中,你可能需要创建一个程序,定期或根据特定条件发送命令到串口,并通过`DataReceived`事件接收响应数据。这可能用于监控设备状态、控制设备操作或其他需要串口通信的任务。`...

    c#自动采集程序源代码

    该程序的标题和描述都是 "C# 自动采集程序源代码",表明该程序是一个使用 C# 编程语言编写的自动采集程序。 标签 该程序的标签是 "C#" 和 "自动采集",表明该程序使用 C# 语言编写,并且具有自动采集的功能。 ...

    LCR仪器的串口数据采集程序 C#源码

    【程序老媛出品,必属精品,亲测...资源名:LCR仪器的数据采集C#程序源码 资源类型:程序源代码 源码说明:使用串口、正则表达式和数据IO卡与PLC同步采集LCR测试仪的测试数据 适合人群:新手及有一定经验的开发人员

    C#通过串口采集数据上位机数据采集、储存、实时显示.zip

    这是个人做的一个实用小项目,主要用于与下位机设备通信,将下位机采集的数据实时显示并记录,界面设计参考Windows任务管理器 这是个人做的一个实用小项目,主要用于与下位机设备通信,将下位机采集的数据实时显示...

    C# Socket TPC数据采集工具

    总结起来,"C# Socket TCP数据采集工具"是一个结合了C#编程、Winform用户界面设计、Socket TCP网络通信以及多线程和数据库操作的综合应用示例,对于想要深入学习这些技术的开发者,这是一个宝贵的实战教程。...

    C#多线程数据采集器

    - **线程创建**:C#通过`System.Threading.Thread`类来创建线程,通过实例化`Thread`类并传递一个委托方法作为入口点来启动线程。 2. **线程的生命周期** - **新建**:创建`Thread`对象。 - **启动**:调用`...

Global site tag (gtag.js) - Google Analytics