Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 06.07.2014
Сообщений: 3
1

Кодировки DownloadStringTaskAsync

06.07.2014, 19:46. Показов 1157. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите решить проблему с кодировками
и правильно ли я сделал потоки что бы скачивалось одновременно?
сайтов будет порядко 50+
пока мне нужно что бы он скачивал в потоках исходный код сайта(url адреса сайта брал с txt файла) и как то сам определял чертову кодировку на сайте что бы не было кракозябр
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System.Collections.Generic;
using System.Net;
using System.Threading.Tasks;
 
 
namespace encoding
{
 
    class HtmlDownloadHelper
    {
        /// <summary>
        /// Скачать страницу
        /// </summary>
        /// <param name="uri">страница сайта</param>
        /// <returns>исходный код</returns>
        public async static Task<string> DownloadHtml(string uri)
        {
            try
            {
                var w = new WebClient();
                string html = await w.DownloadStringTaskAsync(uri);
                return html;
 
            }
            catch (WebException)
            {
 
                return "Немогу скачать";
            }
        }
 
    }
 
 
    class Program
    {
        // Будет хранить исходный код страниц
        private List<string> htmList = new List<string>();
 
        static void Main()
        {
 
            // Будет хранить url
            var uriList = new List<string>();
 
            var ttProgram = new Program();
 
            // Заполняем лист адресом сайта
            ttProgram.GetListText("input.txt", uriList);
 
            // Заполняем лист исходным кодом страницы
            ttProgram.GetPrice(uriList);
 
 
        }
 
        /// <summary>
        /// Скачиваем исходный код заполняем List htmList
        /// </summary>
        /// <param name="url">Список url</param>
        public void GetPrice(List<string> url)
        {
            Parallel.For(0, url.Count, i => htmList.Add(HtmlDownloadHelper.DownloadHtml(url[i]).Result));
        }
 
        /// <summary>
        /// Считываем с текстового файла ссылки на страницы
        /// </summary>
        /// <param name="filename">название файла</param>
        /// <param name="urlList">Список url</param>
        public void GetListText(string filename, List<string> urlList)
        {
            string line;
 
 
            var file =
                new System.IO.StreamReader(filename, System.Text.Encoding.GetEncoding(1251));
 
            while ((line = file.ReadLine()) != null)
            {
                urlList.Add(line);
            }
 
            file.Close();
        }
    }
}
потому буду писать класс который будет этот лист разбирать и вырезать нужную мне инфу поиск всяких подстрок и т.д обертка на string Substring,IndefOf
Вложения
Тип файла: txt input.txt (726 байт, 7 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2014, 19:46
Ответы с готовыми решениями:

Кодировки
Доброе время суток. Я делаю RSS aggregator. Как входные данные, на него подаются url feeds, я их...

кодировки
здравствуйте! помогите решить такую задачу- желательно кодом есть массив байтов содержащий текст в...

кодировки
Мне надо сохранять данные в txt желательно чтобы блокнотом не открывалось а другой программой...

Кодировки текста
Как определить текущую кодировку текста в компоненте TextBox ? И как её поменять ?

4
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
06.07.2014, 19:55 2
http://htmlbook.ru/html/meta/charset
0
0 / 0 / 0
Регистрация: 06.07.2014
Сообщений: 3
06.07.2014, 20:21  [ТС] 3
и как это реализовать в моем классе HtmlDownloadHelper???
0
141 / 181 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
06.07.2014, 20:24 4
Используйте String.IndexOf() внутри каждого элемента htmList.
0
0 / 0 / 0
Регистрация: 06.07.2014
Сообщений: 3
06.07.2014, 20:32  [ТС] 5
А по другому никак ? в
C#
1
2
 var req = (HttpWebRequest)WebRequest.Create(uri);
 var resp = (HttpWebResponse)req.GetResponse();
есть свойство resp.CharacterSet


public string CharacterSet { get; }
Member of System.Net.HttpWebResponse

Summary:
Gets the character set of the response.

Returns:
A string that contains the character set of the response.
http://msdn.microsoft.com/ru-r... 10%29.aspx

а тут подобного нету?
и насчет поток я все верно сделал?
0
06.07.2014, 20:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2014, 20:32
Помогаю со студенческими работами здесь

Смена кодировки
Всем привет! Заранее спасибо! У меня на мой взгляд простейший вопрос, на который я не смог найти...

Преобразование кодировки
Получаю код с HTML страницы, а русский текст там такой: РЇСЃРЅРѕ Как преобразовать в нормальный?...

Смена кодировки
Нужно получить из Тестовое письмо это - Тестовое РїРёСЃСЊРјРѕ Как это сделать?

Смена кодировки
У меня выгрузка документа происходит так: File.WriteAllText(@&quot;C:\Выгрузка\name.csv&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru