您的位置:首页 > 其它

定时抓取网页,并保存到指定文件

2010-03-10 17:50 351 查看
using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Net;

namespace Capture

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

Timer timer1 = new Timer();

private void Form1_Load(object sender, EventArgs e)

{

}

private void btnStop_Click(object sender, EventArgs e)

{

timer1.Stop();

//Application.Exit();

}

private void btnStart_Click(object sender, EventArgs e)

{

timer1.Interval = int.Parse(txtInter.Text.Trim()) * 1000;

timer1.Tick += new EventHandler(timer1_Tick);

timer1.Start();

}

private void timer1_Tick(object sender, EventArgs e)

{

string DirName = "";

string DirPath = txtDir.Text.ToString();

string CapUrl = txtUrl.Text.Trim();

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(CapUrl));

HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

StreamReader str = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding("gb2312"));

string fileName = txtDir.Text.ToString().Substring(txtDir.Text.ToString().LastIndexOf("//") + 1);

//判断选择的文件夹后面是否有文件名,如果没有则把所抓取网页的文件名加在所选的文件夹后面

if (fileName == "" || !fileName.Contains(".html") || !fileName.Contains(".htm"))

{

string URLName = CapUrl.Substring(CapUrl.LastIndexOf("/") + 1);

DirPath +="//"+URLName;

}

DirName = txtDir.Text.ToString().Substring(0, txtDir.Text.ToString().Length - fileName.Length);

if (!Directory.Exists(DirName))

{

Directory.CreateDirectory(DirName);

}

using (FileStream fs = new FileStream(DirPath, FileMode.Create))

{

// 创建一个StreamWriter对象,使用UTF-8编码格式

using (StreamWriter writer = new StreamWriter(fs, Encoding.GetEncoding("gb2312")))

{

writer.Write(str.ReadToEnd());

writer.Close();

}

}

str.Close();

webResponse.Close();

}

//用folderBrowserDialog控件选择文件夹,必须先加一个按钮控件做为浏览按钮,一个

// 文本框控件用于保存选择的文件夹路径

private void btnBrowse_Click(object sender, EventArgs e)

{

if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

{

txtDir.Text = folderBrowserDialog1.SelectedPath;

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: