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

2016-02-19 17:59 23 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"; // ^_^,这是取北京的 转到首页,换换参数,就可以取其它城市的了

      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();
     
      
      }
     }
    }

   

(本文来源于图老师网站,更多请访问http://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

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

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

延伸阅读
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...
标签: ASP
  阿余经常写一些数据库相关的程序,当然离不开显示库中的数据了,说实话,做这样的程序真是无聊啊,所以,阿余就想写个函数,一个通用的数据库显示函数.要求如下: 1. 能显示指定的字段,当然,字段名和显示的文字可以不一样. 2. 能同时按多个字段进行查询,支持模糊和精确两种查询方式. 3. 有横向排列和纵向排列字段两种显示方式. 4. 能自动分页....
第一步:编写服务器的应用程序 首先在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接...

经验教程

930

收藏

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