Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
2 / 2 / 2
Регистрация: 03.07.2014
Сообщений: 277

Парсинг страницы

16.11.2014, 19:29. Показов 2991. Ответов 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
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
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
 
namespace mysitecost
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // Создать запрос с использованием URL
            WebRequest request = WebRequest.Create("http://mysitecost.ru/");
            // Установите свойство метода запроса в POST.
            request.Method = "POST";
            // Создать данные POST и преобразовать его в массив байтов.
            string postData = "domain="+ textBox1.Text +"&act=calculate";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            // Установите свойство ContentType в WebRequest.
            request.ContentType = "application/x-www-form-urlencoded";
            // Установите свойство ContentLength в WebRequest
            request.ContentLength = byteArray.Length;
            // Создаем поток запроса.
            Stream dataStream = request.GetRequestStream();
            // Записываем данные в поток
            dataStream.Write(byteArray, 0, byteArray.Length);
            // Закрываем поток
            dataStream.Close();
            // Получаем ответ
            WebResponse response = request.GetResponse();
            // Отображаем статус
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Получаем содержимое потока, возращемый сервером
            dataStream = response.GetResponseStream();
            // Откройте поток, используя StreamReader для легкого доступа.
            StreamReader reader = new StreamReader(dataStream);
            // Читаем содержимое
            string responseFromServer = reader.ReadToEnd();
            // Отображаем содержимое
            textBox2.Text = responseFromServer;
            // Очищаем поток
            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.11.2014, 19:29
Ответы с готовыми решениями:

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

Парсинг кода динамической страницы
Как парсить информацию с обычных несложных сайтов я понял. get и post запросы понял как работают. Но вот как это делается, если...

Парсинг token из исходного кода страницы
Добрый день,мне нужно получить так называемый токен из исходного кода страницы. Отправляется get запрос,после чего идёт парсинг со...

5
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
16.11.2014, 19:59
ну регексы, или HtmlAgilityPack используете для парсинга. Если страница совсем не сложная, то можно и обычными Substring, IndexOf обойтись
1
2 / 2 / 2
Регистрация: 03.07.2014
Сообщений: 277
16.11.2014, 20:31  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
ну регексы, или HtmlAgilityPack используете для парсинга.
Вот попробывал с помощью регулярок, но при запуске ошибка
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
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
 
namespace mysitecost
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // Создать запрос с использованием URL
            WebRequest request = WebRequest.Create("http://mysitecost.ru/");
            // Установите свойство метода запроса в POST.
            request.Method = "POST";
            // Создать данные POST и преобразовать его в массив байтов.
            string postData = "domain="+ textBox1.Text +"&act=calculate";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            // Установите свойство ContentType в WebRequest.
            request.ContentType = "application/x-www-form-urlencoded";
            // Установите свойство ContentLength в WebRequest
            request.ContentLength = byteArray.Length;
            // Создаем поток запроса.
            Stream dataStream = request.GetRequestStream();
            // Записываем данные в поток
            dataStream.Write(byteArray, 0, byteArray.Length);
            // Закрываем поток
            dataStream.Close();
            // Получаем ответ
            WebResponse response = request.GetResponse();
            // Отображаем статус
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Получаем содержимое потока, возращемый сервером
            dataStream = response.GetResponseStream();
            // Откройте поток, используя StreamReader для легкого доступа.
            StreamReader reader = new StreamReader(dataStream);
            // Читаем содержимое
            string responseFromServer = reader.ReadToEnd();
            // Отображаем содержимое
            //textBox2.Text = responseFromServer;
            string patern = "<meta property=\"og:title\" content=\"(.*)\" />'";
            Match result;
            result = Regex.Match(responseFromServer, patern);
            textBox2.Text = result.ToString();
            // Очищаем поток
            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}
Цитата Сообщение от Монфрид Посмотреть сообщение
Если страница совсем не сложная, то можно и обычными Substring, IndexOf обойтись
А можно подробнее ? Страница легкая

Добавлено через 28 минут
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
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
 
namespace mysitecost
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // Создать запрос с использованием URL
            WebRequest request = WebRequest.Create("http://mysitecost.ru/");
            // Установите свойство метода запроса в POST.
            request.Method = "POST";
            // Создать данные POST и преобразовать его в массив байтов.
            string postData = "domain="+ textBox1.Text +"&act=calculate";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            // Установите свойство ContentType в WebRequest.
            request.ContentType = "application/x-www-form-urlencoded";
            // Установите свойство ContentLength в WebRequest
            request.ContentLength = byteArray.Length;
            // Создаем поток запроса.
            Stream dataStream = request.GetRequestStream();
            // Записываем данные в поток
            dataStream.Write(byteArray, 0, byteArray.Length);
            // Закрываем поток
            dataStream.Close();
            // Получаем ответ
            WebResponse response = request.GetResponse();
            // Отображаем статус
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            // Получаем содержимое потока, возращемый сервером
            dataStream = response.GetResponseStream();
            // Откройте поток, используя StreamReader для легкого доступа.
            StreamReader reader = new StreamReader(dataStream);
            // Читаем содержимое
            string responseFromServer = reader.ReadToEnd();
            // Отображаем содержимое
            //textBox2.Text = responseFromServer;
            string patern = "title\" content=(.*?) />";
            Match result;
            result = Regex.Match(responseFromServer, patern);
            textBox2.Text = result.ToString();
            // Очищаем поток
            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}
Поправил и текст выводит, но вместе с тегами. Как сделать чтобы выводило только текст между тегов ?
0
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
16.11.2014, 21:29
Цитата Сообщение от inject Посмотреть сообщение
Как сделать чтобы выводило только текст между тегов ?
откуда я знаю что за страница у вас, и что нужно парсить
0
2 / 2 / 2
Регистрация: 03.07.2014
Сообщений: 277
17.11.2014, 20:13  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
откуда я знаю что за страница у вас, и что нужно парсить
Страница анализа стоимости сайта. (http://mysitecost.ru/ сайт с которого парсить) Спарсить нужно цену которую выдаст
0
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
17.11.2014, 21:51
Цитата Сообщение от inject Посмотреть сообщение
Спарсить нужно цену которую выдаст
примерно так:
C#
1
Match res= Regex.Match("myh1"">([^<]*)",html);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2014, 21:51
Помогаю со студенческими работами здесь

Парсинг страницы в Webbrowser выдает ошибку
В фоновом потоке, загружаю страницу webbrowser.navigate Пытаюсь получить загруженный документ string content =...

Парсинг веб страницы: время восхода
Доброго времени суток. Не выходит разпарсить страницу http://voshod-solnca.ru/%D0%91%D0%B5%D0%BB%D0%B3%D0%BE%D1%80%D0%BE%D0%B4.html В...

Парсинг страницы после передачи ей POST параметров
Здравствуйте. Помогите пожалуйста получить html код страницы после отправки ей POST запроса. Заранее спасибо.

Парсинг html страницы (мониторинг обновления софта)
Здравствуйте, господа. Есть программа, которой активно пользуются люди. Программа часто обновляется, и по этому мне бы хотелось реализовать...

Парсинг страницы
Помоги пожалуйста, как правильно спарсить информацию (В красной области). Страница сайта:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru