다른 사람이 수집 절차를 수행하는 것을 자주 들었기 때문에 오늘은 직접 시도해 보겠습니다. .
시스템 사용;
System.Collections 사용;
System.ComponentModel 사용;
System.Data 사용;
System.드로잉 사용;
System.Web 사용;
System.Web.SessionState 사용;
System.Web.UI 사용;
System.Net 사용;
System.Text 사용;
System.Text.RegularExpressions 사용;
System.IO 사용;
System.Data.SqlClient 사용;
System.Web.UI.WebControls 사용;
System.Web.UI.HtmlControls
네임스페이스 임시
사용
{
/// <요약>
/// GetHtmlSourceFromUrl에 대한 요약 설명입니다.
/// </summary>
공개 클래스 GetHtmlSourceFromUrl : System.Web.UI.Page
{
개인 SqlConnection 사기;
개인 무효 Page_Load(개체 전송자, System.EventArgs e)
{
//페이지를 초기화하려면 여기에 사용자 코드를 입력하세요.
if(!IsPostBack)
{
InsertToDB();
}
}
개인 무효 InsertToDB()
{
for(int i=1;i<1000;i++)
{
문자열 Html = string.Empty;
string SqlText="BeiJingBus(BusLineNumber,Html) 값(@BLN,@Html)에 삽입";
string ConnectionString=@"서버=.xxxx;사용자 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 요청 = (HttpWebRequest)WebRequest.Create(Url);
HttpWebResponse 응답 =(HttpWebResponse) request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding("gb2312"));
콘텐츠 =stream.ReadToEnd();
스트림.닫기();
응답.닫기();
int start=3487; //광고로 이동하여 텍스트를 가져옵니다.
int end= Content.Length-4222;//광고로 이동하여 텍스트를 가져옵니다.
if(end-start>0) //i번째 버스의 존재 여부를 판단
{
Html=Regex.Replace(Content.Substring(start,end-start),@"<[^>]+>","") //별도의 HTML 코드
노력하다
{
cmd.Parameters.Add("@BLN",SqlDbType.Int).Value =i;
cmd.Parameters.Add("@Html",SqlDbType.Text).Value= Html;
con.Open();
cmd.ExecuteNonQuery();
}
catch(SqlException 오류)
{
Response.Write(err.Message);
con.Close();
부서지다;
}
con.Close();
}
}
}
--테이블 SQL 스크립트:
CREATE TABLE [dbo].[베이징버스](
[id] [int] IDENTITY(1,1) NOT NULL,
[BusLineNumber] [int] NULL,
[Html] [nvarchar](최대) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]는
서명을 사용하지 않습니다: http://hi.baidu.com/Chen Li/blog