2

ページのリストに移動し、すべてのhtmlをファイルに書き込むWebスクレイピングプログラムを作成しました。問題は、テキストのブロックをプルすると、一部の文字が「�」と書かれることです。これらの文字をテキストファイルに取り込むにはどうすればよいですか?これが私のコードです:

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();
4

3 に答える 3

2

名前の付いたページloadimageをテキストファイルに保存しています。それが本当にすべてのテキストであると確信していますか?

いずれにせよ、を使用することで多くのコードを節約できますSystem.Net.WebClient.DownloadFile()

于 2010-06-14T20:17:20.190 に答える
1

次の行でエンコーディングを指定する必要があります。

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

File.AppendText("C:\\Share\\" + filename);UTF-8を使用

于 2010-06-14T20:19:20.490 に答える
0

次のようにUnicodeエンコーディングを指定します。

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

..StreamWriterについても同じ

于 2010-06-14T20:17:44.777 に答える