怎么获取HTMl源码

jjyy17173 2009-03-19 03:40:24
我想做个小程序 读取自己网站上面的一些信息,先捕获所有源码 怎么捕获 哪位大哥告诉下 先谢过了
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
很好,谢谢啦
liuxiaomer 2009-03-19
  • 打赏
  • 举报
回复
今天没事,特地写了以下代码供LZ使用。
记得给分。(窗体构造也在里面,直接贴过去既可使用,不明白的地方可以跟帖,我在线解答)


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.IO;
using System.Text;


namespace WindowsApplication1
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;

public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();

//
// TODO: Add any constructor code after InitializeComponent call
//
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(152, 200);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 12);
this.ClientSize = new System.Drawing.Size(648, 358);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
// ----------------- 处理开始 -----------------------
// 处理在button1点击事件里面
private void button1_Click(object sender, System.EventArgs e)
{

try
{
// 创建web请求对象(下面参数里面的地址请按你的自己的需求变化)
WebRequest myRequest =
WebRequest.Create("http://xxxxx/xxxxx.htm");
// 获取请求结果.
WebResponse myResponse = myRequest.GetResponse();
// 将结果转化为流后面使用
Stream sr = myResponse.GetResponseStream();
// 设定编码
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
// 格式化流编码
StreamReader readStream = new StreamReader( sr, encode );

// 得到读取次数
Char[] read = new Char[256];
int count = readStream.Read( read, 0, 256 );

// 输出内容(这个字符串你可以随便输出到哪里

string tempStr = string.Empty;
while (count > 0)
{
String str = new String(read, 0, count);
            tempStr += str;
                       count = readStream.Read(read, 0, 256);
}
// 此处你自己写tempStr输出语句,我不管了

readStream.Close();
                  myWebResponse.Close();
              }
catch (WebException webExcp)
{
                 // 异常处理你自己搞定
}
}
// ----------------- 处理结束 -----------------------
}
}



注意: 如果设置了代理服务器什么的,这样的方法是无法访问的。
jjyy17173 2009-03-19
  • 打赏
  • 举报
回复
谢谢 好了~~ 呵呵
hb_bigsea 2009-03-19
  • 打赏
  • 举报
回复
我给的是win from开发下的.
jjyy17173 2009-03-19
  • 打赏
  • 举报
回复
桌面的 桌面的~~~~~~~~~~~~
hb_bigsea 2009-03-19
  • 打赏
  • 举报
回复
// <summary>
/// 分析得到网页源代码
/// </summary>
/// <param name="url">目标网址</param>
/// <param name="bm">网址编码</param>

public static string GetHtml(string url, string bm)
{
WebResponse response = null;
Stream stream = null;
StreamReader reader = null;

WebRequest request = WebRequest.Create(url);
response = request.GetResponse();
stream = response.GetResponseStream();


try
{
reader = new StreamReader(stream, System.Text.Encoding.GetEncoding(bm));
}
catch (Exception ex)
{
reader = new StreamReader(stream, System.Text.Encoding.GetEncoding("GB2312"));
}

string pagehtml = reader.ReadToEnd();


stream.Flush();
stream.Close();
response.Close();

return pagehtml;



}
syc958 2009-03-19
  • 打赏
  • 举报
回复
StringBuilder sb = new StringBuilder();
Server.Execute("index.aspx", new StringWriter(sb));
File.WriteAllText(Server.MapPath("index.text"), sb.ToString());
delphi_new 2009-03-19
  • 打赏
  • 举报
回复
这个不是很难,发送请求即可
jjyy17173 2009-03-19
  • 打赏
  • 举报
回复
html 源码 谢谢 ·~~
syc958 2009-03-19
  • 打赏
  • 举报
回复
不知道你说的源码是指的html还是cs中的代码源码.....
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧