C#如何通过URL下载网页页面? 我需要做的是把百度或者GOOGLE中的某关键字的搜索结果下载回来,保存成本地文件,以便分析。而不需要点进去搜索结果出来的链接,请问各位大侠,怎么才可以做到。谢谢!URL是己知的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 webclient类,可以,你看看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.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.IO;using System.Net;using System.Text;using System.Text.RegularExpressions;namespace eMeng.Exam{/// <summary>/// GetPageHtml 的摘要说明。/// </summary>public class GetPageHtml : System.Web.UI.Page{protected System.Web.UI.WebControls.Button WebClientButton;protected System.Web.UI.WebControls.Button WebRequestButton;protected System.Web.UI.WebControls.TextBox ContentHtml;protected System.Web.UI.WebControls.TextBox UrlText;protected System.Web.UI.WebControls.Button GetText;private string PageUrl = "";private void Page_Load(object sender, System.EventArgs e) {}#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e);}/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){ this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click); this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click); this.GetText.Click += new System.EventHandler(this.GetText_Click); this.Load += new System.EventHandler(this.Page_Load);}#endregionprivate void WebClientButton_Click(object sender, System.EventArgs e){ PageUrl = UrlText.Text; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; ///方法一: Byte[] pageData = wc.DownloadData(PageUrl); ContentHtml.Text = Encoding.Default.GetString(pageData); /// 方法二: /// ***************代码开始********** /// Stream resStream = wc.OpenRead(PageUrl); /// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default); /// ContentHtml.Text = sr.ReadToEnd(); /// resStream.Close(); /// **************代码结束******** /// wc.Dispose(); }private void WebRequestButton_Click(object sender, System.EventArgs e){ PageUrl = UrlText.Text; WebRequest request = WebRequest.Create(PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); ContentHtml.Text = sr.ReadToEnd(); resStream.Close(); sr.Close();}private void GetText_Click(object sender, System.EventArgs e) { PageUrl = UrlText.Text; WebRequest request = WebRequest.Create(PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); ContentHtml.Text = sr.ReadToEnd(); resStream.Close(); sr.Close(); ContentHtml.Text = Regex.Replace(ContentHtml.Text,"<[^>]*>", ""); //替换空格 ContentHtml.Text = Regex.Replace(ContentHtml.Text,"\\s+", " "); }} using System.Net;WebClient MyWebClient = new WebClient();this.MyWebClient.DownloadFileAsync(new Uri(this.textBox1.Text), this.textBox2.Text);textBox1为下载的链接地址 textBox2为保存到本地的路径 如何快速判断数据库失去连接?请注意是快速响应的。 TreeView 提示“System.Data.Nodes”不可访问,因为它受保护级别限制 在线等 关于C#取余的一个天大的问题 事件参数类 是哪来的?? 有关进度,队列的问题 到底xslt怎样才能输出回车换行的效果啊? 高手请进,为什么无法正常判断? WinForm 是从哪里启动的问题 ini文件问题,高分请教! 有没有牛人,高分求教,帮忙看看这个问题!!! 200分求一简单问题 删除过期数据问题
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.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
namespace eMeng.Exam
{
/// <summary>
/// GetPageHtml 的摘要说明。
/// </summary>
public class GetPageHtml : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button WebClientButton;
protected System.Web.UI.WebControls.Button WebRequestButton;
protected System.Web.UI.WebControls.TextBox ContentHtml;
protected System.Web.UI.WebControls.TextBox UrlText;
protected System.Web.UI.WebControls.Button GetText;
private string PageUrl = "";private void Page_Load(object sender, System.EventArgs e)
{}#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click);
this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click);
this.GetText.Click += new System.EventHandler(this.GetText_Click);
this.Load += new System.EventHandler(this.Page_Load);}
#endregionprivate void WebClientButton_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials; ///方法一:
Byte[] pageData = wc.DownloadData(PageUrl);
ContentHtml.Text = Encoding.Default.GetString(pageData);
/// 方法二:
/// ***************代码开始**********
/// Stream resStream = wc.OpenRead(PageUrl);
/// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default);
/// ContentHtml.Text = sr.ReadToEnd();
/// resStream.Close();
/// **************代码结束********
///
wc.Dispose();
}private void WebRequestButton_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
sr.Close();
}private void GetText_Click(object sender, System.EventArgs e)
{
PageUrl = UrlText.Text;
WebRequest request = WebRequest.Create(PageUrl);
WebResponse response = request.GetResponse();
Stream resStream = response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
ContentHtml.Text = sr.ReadToEnd();
resStream.Close();
sr.Close();
ContentHtml.Text = Regex.Replace(ContentHtml.Text,"<[^>]*>", "");
//替换空格
ContentHtml.Text = Regex.Replace(ContentHtml.Text,"\\s+", " ");
}
}
WebClient MyWebClient = new WebClient();
this.MyWebClient.DownloadFileAsync(new Uri(this.textBox1.Text), this.textBox2.Text);
textBox1为下载的链接地址 textBox2为保存到本地的路径