定时抓取网页,并保存到指定文件
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;
}
}
}
}
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;
}
}
}
}
相关文章推荐
- MFC中怎样把抓取到的位图保存到指定文件中
- 使用Python抓去网页中的关键字并保存指定文件中
- 2006.9.9 实现定时拷贝屏幕,并保存为指定目录下形成文件DeleteObject(hBmp);//必须要添加,否则会占用内存,越来越小,一定要注意
- nodejs抓取网页的源码,并保存到本地文件
- Java Jsoup抓取符合指定大小的网页的图片,并保存在本地磁盘
- 用php的curl函数发起https请求,并将结果(抓取到的网页)保存到本地文件中
- 抓取网页并存储在指定的文件中
- Python实现抓取HTML网页并以PDF文件形式保存的方法
- 抓取网页图片,文件等核心方法
- Google 在网页中直接修改js文件 保存生效
- MFC 使用CImage获取到屏幕截图,指定格式保存到文件
- ASP.Net中,如何自动保存文件到指定位置
- Java 把指定路径的文件读入内存并用字节数组保存工具方法
- 通过vbs获取远程host文件并保存到指定目录
- [Python]网络爬虫(二):利用urllib2通过指定的URL抓取网页内容
- 使用TWebBrowser组件保存网页为html和mht文件
- java抓取网页或者文件的邮箱号码
- python抓取网页中图片并保存到本地
- Python抓取HTML网页并以PDF保存
- [小技巧] 使用wget 抓取指定目录下的文件