海纳百川 有容乃大(http://www.brtech.com.cn)

海纳百川,有容乃大(http://www.brtech.com.cn)

  :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;
using Microsoft.VisualBasic;
using System.IO;
using System.Net;
using pq7798;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Threading;

namespace SetProc
{
    
/// <summary>
    
/// Form1 的摘要说明。
    
/// </summary>

    public class Form1 : System.Windows.Forms.Form
    
{
        

        
private void SetProductInfo(string url,int Mid)
        
{
            
string Temp,Info,Pid,Pic,timestart,timeend,proc,crop;
            
int T1,T2,hits;
            StringBuilder Str 
= new StringBuilder();
            
do
            
{
                Str.Append(dataHelper.Get_Http(url,
260,@"点击小图"));
                Temp
=Str.Replace(" ","").ToString();
            }

            
while(Temp==""||Strings.InStr(Temp,"错误:",0)>0||Strings.InStr(Temp,"对不起",0)>0);
            
            
            
//Str.Append(dataHelper.Get_Http(url,691,@"name=""down"""));
            
//Temp=Str.Replace(" ","").ToString();
            
//if(Temp==""||Strings.InStr(Temp,"错误:",0)>0)
            
//return(Info="");
            do
            
{
                T1
=Strings.InStr(Str.ToString(),"http://list.china.alibaba.com/buyer/offerlist",0)+44;
            }

            
while(T1==0);
            Str.Remove(
0,T1);
            T2
=Strings.InStr(Str.ToString(),".",0)-1;
            Temp
=Strings.Mid(Str.ToString(),1,T2);
            T1
=Strings.InStr(Temp,"-",0);
            Pid
=Temp.Remove(0,T1);

            
try
            
{
                T1
=Strings.InStr(Str.ToString(),"bigheader>",0)+9;
                Str.Remove(
0,T1);
                T2
=Strings.InStr(Str.ToString(),"</td>",0)-1;
                proc
=Strings.Mid(Str.ToString(),1,T2);
                Str.Remove(
0,T2);
            }

            
catch(Exception exp)
            
{
                proc
="";
            }


            
try
            
{
                T1
=Strings.InStr(Str.ToString(),"发布时间:",0)+4;
                Str.Remove(
0,T1);
                T2
=Strings.InStr(Str.ToString(),"</td>",0)-1;
                timestart
=Strings.Mid(Str.ToString(),1,T2);
                timestart
=timestart.Replace("","-").Replace("","-").Replace("","");
                Str.Remove(
0,T2);
            }

            
catch(Exception exp)
            
{
                timestart
="2005-5-1";
            }


            
try
            
{
                T1
=Strings.InStr(Str.ToString(),"效期:",0)+2;
                Str.Remove(
0,T1);
                T2
=Strings.InStr(Str.ToString(),"</td>",0)-1;
                timeend
=Strings.Mid(Str.ToString(),1,T2);
                timeend
=timeend.Replace("","-").Replace("","-").Replace("","");
                Str.Remove(
0,T2);
            }

            
catch(Exception exp)
            
{
                timeend
="2005-7-1";
            }

            
            
try
            
{
                T1
=Strings.InStr(Str.ToString(),"yname",0)+9;
                Temp
=Str.Remove(0,T1).ToString();
                T2
=Strings.InStr(Str.ToString(),"<",0)-1;
                crop
=Strings.Mid(Str.ToString(),1,T2);
                Temp
=Str.Remove(0,T2+4500).ToString();
            }

            
catch(Exception exp)
            
{
                crop
="";
            }


            
try
            
{
                T1
=Strings.InStr(Str.ToString(),"&nbsp;&nbsp;&nbsp;&nbsp;",0)+23;
                Temp
=Str.Remove(0,T1).ToString();

                T2
=Strings.InStr(Str.ToString(),"</fo",0)-1;
                Info
=Strings.Mid(Str.ToString(),1,T2);
                Str.Remove(
0,T2);
            }

            
catch(Exception exp)
            
{
                Info
="无详细介绍";
            }


            
try
            
{
                T1
=Strings.InStr(Str.ToString(),"http://img.china.alibaba.com/img/offer",0)-1;
                Temp
=Str.Remove(0,T1).ToString();
                T2
=Strings.InStr(Str.ToString(),"+id",0)-2;
                Pic
=Strings.Mid(Str.ToString(),1,T2);
            }

            
catch(Exception exp)
            
{
                Pic
="";
            }

            Random ObjRandom
=new Random();
            hits
=ObjRandom.Next(500)+200;
            pq7798.dataHelper DataB
=new dataHelper();
            SqlCommand cmd
=DataB.Sqlcmd("Up_productAdd",CommandType.StoredProcedure);
            DataB.Parameters(Mid.ToString(),
"@Mid",cmd);
            DataB.Parameters(Pid,
"@Pid",cmd);
            DataB.Parameters(Pic,
"@Pic",SqlDbType.NVarChar,50,cmd);
            DataB.Parameters(crop,
"@Corp",cmd);
            DataB.Parameters(proc,
"@ProC",SqlDbType.NVarChar,100,cmd);
            DataB.Parameters(Info,
"@Info",cmd);
            DataB.Parameters(timestart,
"@timestart",cmd);
            DataB.Parameters(timeend,
"@timeend",cmd);
            DataB.Parameters(hits.ToString(),
"@hits",cmd);
            DataB.SqlOpen();
            cmd.ExecuteNonQuery();
            DataB.SqlClose();
        }


        
private void SetPartType()
        
{
            
string url,url1,Temp,Info,ProC,Pic,Corp,Pid;
            StringBuilder Str 
= new StringBuilder();
            
int j,T1,T2,hits;
            
for(j=58;j<=58;j++)  //J为主分类ID
            {
                url
="http://list.china.alibaba.com/buyer/newtrade/"+j.ToString()+".html";
                
do
                
{
                    
do
                    
{
                        Temp
=Str.Append(dataHelper.Get_Http(url,1210,"直接到第")).ToString();
                    }

                    
while(Temp==""||Strings.InStr(Temp,"错误:",0)>0);
                    
do
                    
{
                        T1
=Strings.InStr(Temp,"compareColor",0);
                    }

                    
while(T1==0);
                    Str.Remove(
0,T1+13);
                    Str.Replace(
@"<font color=""#666666"">该会员所有供应信息</font></a>","");
                    Str.Replace(
@"<font color=""#666666"">查看该会员企业网站</font></a>","");
                    Str.Replace(
@"<table border=""0"" cellspacing=""0"" cellpadding=""0"" 64 height=64 class=porductborder><tr><td  >","");
                    Str.Replace(
@"<img src=""http://img.china.alibaba.com/images/buyer/list/trust.gif"" 22 height=14 border=0  align=absmiddle alt=""诚信通指数""><br></font></strong>","");
                    Str.Replace(
@"  target=""_blank""  class=numb><font style=""font-size: 13px;font-family:Verdana;font:bold"">","");
                    Str.Replace(
@"<td  class=S 15%>","");
                    Str.Replace(
" ","");
                
                    
do
                    
{
                        
try
                        
{
                            T1
=Strings.InStr(Str.ToString(),"compareBox",0)+120;
                            Info
=Str.Remove(0,T1).ToString();
                            T2
=Strings.InStr(Str.ToString(),"class=S11",0);
                            Temp
=Strings.Mid(Str.ToString(),1,T2);
                            Str.Remove(
0,T2);
                            
if(Temp=="")
                                
continue;
                            T1
=Strings.InStr(Temp,"img.china",0)-8;
                            
if(T1<1)
                                Pic
="";
                            
else
                            
{
                                Temp
=Temp.Remove(0,T1);
                                T2
=Strings.InStr(Temp,"jpg",0)+2;
                                Pic
=Strings.Mid(Temp,1,T2);  //Pic为产品图片
                                Pic=Pic.Replace(".summ.jpg","");
                                Temp
=Temp.Remove(0,T2);
                            }

                            T1
=Strings.InStr(Temp,@"http://detail",0)-1;
                            Temp
=Temp.Remove(0,T1);
                            T2
=Strings.InStr(Temp,"html",0)+3;
                            url1
=Strings.Mid(Temp,1,T2);  //url1产品页
                            T1=Strings.InStr(url1,@"-",0);
                            Pid
=url1.Remove(0,T1);
                            T2
=Strings.InStr(Pid,@"-",0)-1;
                            Pid
=Strings.Mid(Pid,1,T2);
                            Temp
=Temp.Remove(0,T2);

                            T1
=Strings.InStr(Temp,@"class=""lh15",0)+12;
                            Temp
=Temp.Remove(0,T1);
                            T2
=Strings.InStr(Temp,"</span",0)-1;
                            ProC
=Strings.Mid(Temp,1,T2);  //ProC为产品名
                            Temp=Temp.Remove(0,T2);

                            T1
=Strings.InStr(Temp,@"><font",0)+22;
                            Temp
=Temp.Remove(0,T1);
                            T1
=Strings.InStr(Temp,@"><font",0)+21;
                            Temp
=Temp.Remove(0,T1);
                            T2
=Strings.InStr(Temp,"</font",0)-1;
                            Corp
=Strings.Mid(Temp,1,T2);  //Corp为公司名
                            Temp=Temp.Remove(0,T2);
                            
//SetProductInfo(url1,j);
                            Random ObjRandom=new Random();
                            hits
=ObjRandom.Next(500)+200;
                            pq7798.dataHelper DataB
=new dataHelper();
                            SqlCommand cmd
=DataB.Sqlcmd("Up_productAdd",CommandType.StoredProcedure);
                            DataB.Parameters(j.ToString(),
"@Mid",cmd);
                            DataB.Parameters(Pid,
"@Pid",cmd);
                            DataB.Parameters(Pic,
"@Pic",SqlDbType.NVarChar,50,cmd);
                            DataB.Parameters(Corp,
"@Corp",cmd);
                            DataB.Parameters(ProC,
"@ProC",SqlDbType.NVarChar,100,cmd);
                            DataB.Parameters(Info,
"@Info",cmd);
                            DataB.Parameters(
"2005-5-1","@timestart",cmd);
                            DataB.Parameters(
"2005-7-1","@timeend",cmd);
                            DataB.Parameters(hits.ToString(),
"@hits",cmd);
                            DataB.SqlOpen();
                            cmd.ExecuteNonQuery();
                            DataB.SqlClose();
                        }

                        
catch(Exception exp)
                        
{
                            
continue;
                        }
                    
                    }

                    
while(Strings.InStr(Str.ToString(),"compareBox",0)>0);
                    
if(Strings.InStr(Str.ToString(),"下一页",0)>0)
                        
break;
                    Temp
=Str.ToString();
                    T1
=Str.Length-Strings.InStrRev(Str.ToString(),"http://list.china.alibaba.com/buyer/newofferlist",1,CompareMethod.Text);
                    Str.Remove(
0,T1);
                    T2
=Strings.InStr(Str.ToString(),"html",0)+3;
                    url
=Strings.Mid(Str.ToString(),1,T2);
                }

                
while(true);
            }

        }


        
private void button1_Click(object sender, System.EventArgs e)
        
{
        SetPartType();
        }

    }

}

用正则来匹配是最好的,通过外部配置文件来进行设置,你这样写在程序里真的会累死人。

获得到目标文件源代码后通过配置文件的设置进行匹配列表,分页,标题,匹配内容,匹配。。。。
posted on 2006-03-26 03:27  阿昆  阅读(954)  评论(1编辑  收藏  举报