如何在C#中阅读完整的网页 [英] How to read full web page in C#

查看:61
本文介绍了如何在C#中阅读完整的网页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Net;
using System.IO;

/* I WRITE THIS PROGRAM TO GET WEB CONTENT ON INTERNET , BUT IT NOT WORK CORRECTLY. PLEASE HELP ME */


namespace GetHtmlFromInternet
{
    class Program
    {
        public static WebClient wClient = new WebClient();
            public static StreamWriter sw;
            public static TextWriter textWriter;
        /*I USE THIS FUNCTION TO READ WEB PAGE ON INTERNET BUT IT NOT WORK CORRECTLY ON SOME LINKS*/
            public static String readFromLink()
            {
                /* IT WORK CORRECTLY IF WE SET url = "http://vn.yahoo.com/?p=us"; BUT NOT OK WITH URL BELOW*/
                String url = "http://raovat.com/?rv=detail&idrv=527443&idcate=57&tt=vppnhatthanh@yahoo.com.vn";

                /* PLEASE HELP ME MAKE FUNCTION READFROMLINK RUNABLE WITH THIS LINK*/
                System.Net.WebClient client = new System.Net.WebClient();
                byte[] data = client.DownloadData(url);
                String html = System.Text.Encoding.UTF8.GetString(data);
                return html;


            }
            public static bool WriteTextFile(String fileName, String t)
            {

                try
                {
                    textWriter = new StreamWriter(fileName);
                }
                catch (Exception)
                {
                    return false;
                }

                try
                {
                    textWriter.WriteLine(t);
                }
                catch (Exception)
                {
                    return false;
                }
                textWriter.Close();
                return true;
            }
        static void Main(string[] args)
        {
            String saveFile = "C:/saveFromURL.txt";
            String reSultString = readFromLink();
            WriteTextFile(saveFile, reSultString);
        }
    }
}

推荐答案

您可以简单地使用给定的代码读取所有网页
you can simple use the given code to read all webpage
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close()


有关更多详细信息,您可以 [ [^ ]


for more details you can go there[^] and there[^]


我会像RaviRanjakr一样做.但要添加更多检查和编码.


I will do as RaviRanjakr has done. But add some more checking and encoding.


HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if (response.StatusCode == HttpStatusCode.OK)
{
  Stream receiveStream = response.GetResponseStream();
  StreamReader readStream = null;

  if (response.CharacterSet == null)
    readStream = new StreamReader(receiveStream);
  else
    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));

  string data = readStream.ReadToEnd();
  response.Close();
  readStream.Close();
}


//RaviRanjakr,金·多哥!它仍然无法获取完整的页面内容,请检查与浏览器的链接,然后将代码插入函数readFromLink的链接中运行我的程序,如下所示:
公共静态字符串readFromLink()
{
字符串URL ="http://raovat.com/?rv=detail&idrv=527443&idcate=57&tt=vppnhatthanh@yahoo.com.vn";
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(URL);
request.Method ="GET";
HttpWebResponse响应=(HttpWebResponse)request.GetResponse();
字符串data = null;
如果(response.StatusCode == HttpStatusCode.OK)
{
流receiveStream = response.GetResponseStream();
StreamReader readStream = null;
如果(response.CharacterSet == null)
readStream =新的StreamReader(receiveStream);
else readStream = new StreamReader(receiveStream,Encoding.GetEncoding(response.CharacterSet));
数据= readStream.ReadToEnd(); response.Close(); readStream.Close();
}
返回数据;
}

//请一次又一次地帮助我.希望在我们解决该问题之前得到您的反馈!
// RaviRanjakr , Kim Togo ! It still can not get full page content , please check that link with your browser and run my program with your code insert into the function readFromLink link like this :
public static String readFromLink()
{
String URL = "http://raovat.com/?rv=detail&idrv=527443&idcate=57&tt=vppnhatthanh@yahoo.com.vn";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String data=null;
if (response.StatusCode == HttpStatusCode.OK)
{
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = null;
if (response.CharacterSet == null)
readStream = new StreamReader(receiveStream);
else readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
data= readStream.ReadToEnd(); response.Close(); readStream.Close();
}
return data;
}

// Please help me again and again .I hope get your feedbacks until we can solve this problem!


这篇关于如何在C#中阅读完整的网页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆