conan

导航

只用我的提取程序取了800多条产品信息

2005年4月9日   星期六  阴  河南郑州

  今天很冷呀,我网站上的天气预报是6-15度,不过今天挤公交车是很暖和的。

  还是说说我那程序吧,一句话真让我失望。两小时就取了800条信息,我还能说什么,星期一要被老板骂了,哎。

  我的程序写的很丑,大家不要见怪,本人实在是水平有限,帮帮我吧。关于写数据那部分是调用我自己写的一个数据基类,那个Get_Http就是我调用的前两天我贴出来的那个核心了。还有就是我从来没做到Form应用程序只做过Web程序,所以对应用程序的工作机制不了解,以至我在用Botton的Click事件调用提取方法时总是提个几十条就不工作了,希望知道原因的同志给我说一下。我写的烂程序就在下面了,别见笑(哎,不会写文章,也不会写程序,真是没法在博客园里混呀。不过还请不要踢我!!!)


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 2005-04-09 19:00  Conan  阅读(1802)  评论(10编辑  收藏  举报