Проблема извлечения данных с веб-сайта в .NET и C # - PullRequest
2 голосов
/ 15 июня 2010

Я написал программу очистки веб-страниц, чтобы перейти к списку страниц и записать все HTML-файлы в файл. Проблема в том, что когда я вытягиваю блок текста, некоторые символы пишутся как « ». Как мне вставить эти символы в мой текстовый файл? Вот мой код:

string baseUri = String.Format("http://www.rogersmushrooms.com/gallery/loadimage.asp?did={0}&blockName={1}", id.ToString(), name.Trim());

// our third request is for the actual webpage after the login.
HttpWebRequest request =
(HttpWebRequest)WebRequest.Create(baseUri);
request.Method = "GET";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)";
//get the response object, so that we may get the session cookie.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());

// and read the response
string page = reader.ReadToEnd();

StreamWriter SW;
string filename = string.Format("{0}.txt", id.ToString());
SW = File.AppendText("C:\\Share\\" + filename);

SW.Write(page);

reader.Close();
response.Close();

Ответы [ 3 ]

2 голосов
/ 15 июня 2010

Вы сохраняете страницу с именем loadimage в текстовый файл. Вы уверены, что это действительно весь текст?

В любом случае, вы можете сэкономить много кода, используя System.Net.WebClient.DownloadFile().

1 голос
/ 15 июня 2010

Вам необходимо указать кодировку в этой строке:

StreamReader reader = new StreamReader(response.GetResponseStream());

и

File.AppendText("C:\\Share\\" + filename); использует UTF-8

0 голосов
/ 15 июня 2010

Укажите кодировку Unicode, например:

New StreamReader(response.GetResponseStream(), Text.Encoding.UTF8)

.. то же самое для StreamWriter

...