写个偷全国公交数据库的程序

2016-02-19 17:59 17 1 收藏

下面,图老师小编带您去了解一下写个偷全国公交数据库的程序,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

  以前常听到别人做采集程序,今天俺也小试身手。。
  using System;
  using System.Collections;
  using System.ComponentModel;
  using System.Data;
  using System.Drawing;
  using System.Web;
  using System.Web.SessionState;
  using System.Web.UI;
  using System.Net;
  using System.Text;
  using System.Text.RegularExpressions;
  using System.IO;
  using System.Data.SqlClient;
  using System.Web.UI.WebControls;
  using System.Web.UI.HtmlControls;

  namespace Temp
  {
   /// summary
   /// GetHtmlSourceFromUrl 的摘要说明。
   /// /summary
   public class GetHtmlSourceFromUrl : System.Web.UI.Page
   {
    private SqlConnection con;
   
    private void Page_Load(object sender, System.EventArgs e)
    {
     // 在此处放置用户代码以初始化页面
    
     if(!IsPostBack)
     {
      InsertToDB();
     }
    
    }
    private void InsertToDB()
    {
    
     for(int i=1;i1000;i++)
     {
      string Html = string.Empty;
      string SqlText="insert into BeiJingBus(BusLineNumber,Html) Values(@BLN,@Html)";
      string ConnectionString=@"Server=.xxxx;User ID=xxxx;Pwd=xxxxx;DataBase=Map";
      con  =new SqlConnection(ConnectionString);
     
      SqlCommand cmd = new SqlCommand(SqlText,con);
   
      string Url=@"http://beijing.ibusdb.com/?busline="+i+"&s=busline&x=31&y=18"; // ^_^,这是取北京的 转到首页,换换参数,就可以取其它城市的了

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

      string Content = string.Empty;
     
      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
      HttpWebResponse response =(HttpWebResponse) request.GetResponse();
      StreamReader  stream = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding("gb2312"));
      Content =stream.ReadToEnd();
      stream.Close();  
      response.Close();
    
      int start=3487; //去广告 取正文
      int end= Content.Length-4222;//去广告 取正文
      if(end-start0)  //判断存在第i路公交
      {
        Html=Regex.Replace(Content.Substring(start,end-start),@"[^]+","");  //分离html代码
     
       try
       {
        cmd.Parameters.Add("@BLN",SqlDbType.Int).Value =i;
        cmd.Parameters.Add("@Html",SqlDbType.Text).Value= Html;
        con.Open();
        cmd.ExecuteNonQuery();
       }
       catch(SqlException err)
       {
        Response.Write(err.Message);
        con.Close();
        break;
      
       }
       con.Close();
     
      
      }
     }
    }

   

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  --表sql脚本:
  CREATE TABLE [dbo].[BeiJingBus](
   [id] [int] IDENTITY(1,1) NOT NULL,
   [BusLineNumber] [int] NULL,
   [Html] [nvarchar](max) COLLATE Chinese_PRC_CI_AS NULL
  ) ON [PRIMARY]

  不会用签名:http://hi.baidu.com/陈立/blog

来源:https://www.tulaoshi.com/n/20160219/1616532.html

延伸阅读
第一步:编写服务器的应用程序 首先在Delphi的IDE中选择File|New|Other,然后在WebServices页面中选择Soap Server Application图标。 然后在New Soap Server Application对话框中选择Web App Debugger executable。 点击OK按钮之后,Delphi会自动生成一个WebModule,在这个Module中会包含三个WebServices的控件。 然后然...
使用OLE DB 5.1    概述 OLE DB的存在为用户提供了一种统一的方法来访问所有不同种类的数据源。OLE DB可以在不同的数据源中进行转换。利用OLE DB,客户端的开发人员在进行数据访问时只需把精力集中在很少的一些细节上,而不必弄懂大量不同数据库的访问协议。 OLE DB是一套通过COM接口访问数据的ActiveX接口。这个OLE DB接...
使用DAO    4.1    概述 Visual C++提供了对DAO的封装,MFC DAO类封装了DAO(数据库访问对象)的大部分功能,从面Visual C++程序就可以使用Visual C++提供的MFC DAO类方便的访问Microsoft Jet 数据库,编制简洁、有Visaul C++特色的数据库应用程序。 数据库访问对象(DAO)提供了一种通过程序代码创建和操纵数...
13.1 数据库系统概述 数据库系统为我们提供了一种把与我们的工作和生活紧密相关的信息集合在一起的方法,它还提供了在某个集中的地方存储和维护这些信息的方法。数据库系统主要由三大部分组成:数据库管理系统(DBMS:它是专门负责组织和管理数据信息的程序)、数据库应用程序(它使我们能够获取、显示和更新由DBMS存储的数据)、数...
1、    概述 1、1    Visual C++开发数据库技术的特点 Visual C++提供了多种多样的数据库访问技术——ODBC API、MFC ODBC、DAO、OLE DB、ADO等。这些技术各有自己的特点,它们提供了简单、灵活、访问速度快、可扩展性好的开发技术。 1、 简单性 Visual C++中提供了MFC类库、ATL模板类以及AppWizard、Cl...

经验教程

177

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部