Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 17
.NET 4.x

Парсинг

17.02.2019, 23:19. Показов 2586. Ответов 5

Студворк — интернет-сервис помощи студентам
Добрый день.Может есть знающие люди.
Сделал парсер.Вот так получаю страницу
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
               string htmlCode = "";
                try
                {
                    using (WebClient wc = new WebClient())
                    {
                        wc.Encoding = Encoding.UTF8;
                        htmlCode = wc.DownloadString(src);
                        HD.LoadHtml(htmlCode);
                    }
                }
                catch
                {
                    http httpVar = new http();
                    httpVar.CurlInit(); // cURL init
                    httpVar.ClearCookies();
 
                    String
                    http_headers = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
                    http_headers = http_headers + "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36";
                    http_headers = http_headers + "Accept-Encoding: gzip,deflate,sdch";
                    http_headers = http_headers + "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4";
                    htmlCode = httpVar.HTTPGet(src, "");
                    HD.LoadHtml(htmlCode);
                }
Но у некоторых людей,кому я даю прогу возникают ошибки. Что может не дать проге получить исходный код страницы, может ли это быть антивирус или винда не давать это сделать?
Вложения
Тип файла: rar http.cs.rar (1.2 Кб, 6 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2019, 23:19
Ответы с готовыми решениями:

Парсинг JSON
Здравствуйте, уважаемые форумчане ! Требуется парсинг JSON с сохранением метода, облазил весь форум и половину гугла , но так нечего...

Парсинг уравнения
Здравствуйте. Реализую программу решения СЛАУ. Нужно считать из textbox допустим уравнение 2*x1+0.5*x2-76*x3=10. И при этом...

Парсинг JSON C#
Доброй ночи, форумчане. У меня тут возникла одна проблема с парсингом json. Я уже много способов перепробовал и всё никак не получается. ...

5
 Аватар для АлексПрайм
29 / 26 / 6
Регистрация: 18.09.2014
Сообщений: 161
18.02.2019, 07:35
Чёт сложный парсер у тебя, или я просто не догоняю. Во всяком случае, вот мой парсер:
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
try
            {
                HttpWebRequest test_link = (HttpWebRequest)WebRequest.Create("https://portal.esstu.ru/raspisan.htm");
                HttpWebResponse test_response = (HttpWebResponse)test_link.GetResponse(); // проверка соединения с сайтом ВСГУТУ
                if (HttpStatusCode.OK == test_response.StatusCode)
                {
                    #region Узнаем номер кафедры для ссылки
                    WebClient CafClient = new WebClient();
                    Stream CafStream = CafClient.OpenRead("https://portal.esstu.ru/bakalavriat/craspisanEdt.htm");
                    StreamReader CafReader = new StreamReader(CafStream, System.Text.Encoding.Default);
                    string Cafstr = "";
                    string NomerCaf = ""; // нужна для хранения продолжения ссылки (номера кафедры)
                    while (!CafReader.EndOfStream)
                    {
                        Cafstr = CafReader.ReadLine();
                        if (Cafstr.IndexOf("Электроснабжение промышленных предприятий") >= 0)
                        {
                            NomerCaf = Cafstr.Substring(Cafstr.IndexOf("<a href=\"") + 9, Cafstr.IndexOf("<a href=\""));
                            break;
                        }
                        else if (CafReader.EndOfStream)
                        {
                            MessageBox.Show("Не обнаружена кафедра ЭСППиСХ.\nРасписание не доступно", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }
                    CafClient.Dispose(); CafStream.Close(); CafReader.Close();
                    #endregion
                    #region Загрузка расписания кафедры
                    HttpWebRequest RaspReq = (HttpWebRequest)WebRequest.Create("https://portal.esstu.ru/bakalavriat/" + NomerCaf + ".htm"); // передача адреса строки
                    HttpWebResponse RaspRes = (HttpWebResponse)RaspReq.GetResponse(); // отправка запроса и получение ответа
                    Stream RaspStr = RaspRes.GetResponseStream(); // получение ответа ввиде потока информации
                    StreamReader RaspRead = new StreamReader(RaspStr, System.Text.Encoding.Default); // создание потоковой переменной для принятия данных
                    // StreamWriter RaspWrite = new StreamWriter("caf39.txt"); // создание текстового файла для хранения данных веб-страницы
                    web_esstu = RaspRead.ReadToEnd(); // сохранение загруженных данных в глобальную строку
                    // RaspWrite.WriteLine(response); // запись считанных данных в файл
                    RaspStr.Dispose();
                    RaspRead.Dispose();
                    // RaspWrite.Dispose();
                    RaspRes.Close();
                    #endregion
                }
            }
В регионе "Узнаем номер кафедры для ссылки" я коннектюсь через WebClient.
Во втором регионе "Загрузка расписания кафедры" я скачиваю html код страницы в переменную string web_esstu через HttpWebRequest/HttpWebResponse. Данные всей страницы html хранятся в ней на протяжении загрузки программы (если все это делать через Load). Или можешь сделать загрузку всей страницы в отдельный файл txt, там тоже написал.

В общем, пробегись через отладчик и всё поймешь. Мне кажется, или так проще будет?
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 17
18.02.2019, 12:54  [ТС]
Может и проще) Я так сделал потому что webclient-ом не у всех кому я даю прогу получается получить код страницы.Поэтому я сначала пытаюсь её получить вебслиентом, если не получается то у же curl-ом. Но опять же в основном у всех все работает нормально, но есть единичные случаи, когда не получается загрузить страницу. Так вот я хочу понять это программа виновата или дело в винде пользователя или его антивирусе или еще что может не дать спарсить страницу
0
 Аватар для АлексПрайм
29 / 26 / 6
Регистрация: 18.09.2014
Сообщений: 161
18.02.2019, 15:24
UbeiBobra, в основном в антивирусе. Еще есть вероятность того, что .Net Framework не стоит нужный у него. У меня проблем никаких с ним не было, на любой машине тестил *.exe файл и все на ура. Иногда терял конечно соединение, но причина тому - антивир блочил.
0
0 / 0 / 0
Регистрация: 11.01.2016
Сообщений: 17
18.02.2019, 15:51  [ТС]
Понял, благодарю
0
 Аватар для АлексПрайм
29 / 26 / 6
Регистрация: 18.09.2014
Сообщений: 161
20.02.2019, 07:18
UbeiBobra, благодарность ставьте в виде - "+1 спасибо" или "Лучший ответ" справа от сообщения. Это будет хорошая награда для большинства.

Добавлено через 2 часа 33 минуты
UbeiBobra, кстати "Лучший ответ" ставится на том сообщении, которое считается ответом темы. На заметку
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2019, 07:18
Помогаю со студенческими работами здесь

Парсинг страницы
Добрый день форумчане, появилась необходимость создать программу на Windows Forms C#. Хотел распарсить html страницу, получил код html...

Парсинг из тегов
Здравствуйте, хотелось бы узнать, как вытащить конкретный текст из страницы? &lt;p...

Парсинг страницы
Отправляю пост запрос на страницу с последующим редиректом. Далее получаю код страницы. Нужно спарсить данные из кода. чем лучше всего это...

Парсинг картинок
Есть каталог ейвон, нужно его скачать. Но доступно только по одной страничке Картинка Меняются числа(номера страниц, только...

Парсинг новостей с сайта
Добрый вечер! Мне нужно получить список новостей с сайта msn.com и отобразить в listbox, но ничего на ум так и не приходит. Скажите, что...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru