اعتدت أن أسمع في كثير من الأحيان أشخاصًا آخرين يقومون بإجراءات التحصيل، لذا سأحاول اليوم تجربتها. .
باستخدام النظام؛
باستخدام System.Collections؛
باستخدام System.ComponentModel؛
باستخدام System.Data؛
باستخدام System.Drawing؛
باستخدام 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؛
مساحة الاسم Temp
{
/// <الملخص>
/// وصف موجز لـ GetHtmlSourceFromUrl.
/// </الملخص>
الفئة العامة GetHtmlSourceFromUrl: System.Web.UI.Page
{
يخدع SqlConnection الخاص ؛
Page_Load باطلة خاصة (مرسل الكائن، System.EventArgs e)
{
// ضع رمز المستخدم هنا لتهيئة الصفحة
إذا (!IsPostBack)
{
InsertToDB();
}
}
الفراغ الخاص InsertToDB()
{
ل(int i=1;i<1000;i++)
{
سلسلة HTML = سلسلة. فارغة؛
سلسلة SqlText = "أدخل في قيم BeiJingBus(BusLineNumber,Html)(@BLN,@Html)";
سلسلة ConnectionString=@"Server=.xxxx;معرف المستخدم =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();
StreamReaderstream = 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();
}
قبض على (خطأ SqlException)
{
Response.Write(err.Message);
con.Close();
استراحة؛
}
con.Close();
}
}
}
--جدول SQL النصي:
إنشاء جدول [dbo].[BeiJingBus](
[معرف] [int] الهوية (1،1) ليست فارغة،
[BusLineNumber] [int] NULL،
[Html] [nvarchar](الحد الأقصى) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
لا يستخدم التوقيعات: http://hi.baidu.com/Chen Li/blog