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

Распарсить Html-страницу

13.12.2011, 03:29. Показов 3548. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане,
Прошу вашей помощи.

Вот код моей программки:

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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
 
 
 
 
 
 
namespace builder
{
   
 
    public partial class Form1 : Form
    {
        public Form1()
 
 
 
        {
            InitializeComponent();
 
 
        }
 
        public string Pars(ref string strSource, ref string strStart, ref string strEnd, [System.Runtime.InteropServices.OptionalAttribute, System.Runtime.InteropServices.DefaultParameterValueAttribute(0)] ref  
aren't supported in C#
int startPos)
        {
            int iPos;
            int iEnd;
            int lenStart = strStart.Length;
            string strResult;
            strResult = string.Empty;
            iPos = strSource.IndexOf(strStart, startPos);
            iEnd = strSource.IndexOf(strEnd, iPos + lenStart);
            if (iPos != -1 && iEnd != -1)
            {
                strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart));
            }
            return strResult;
        }
 
 
        
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
 
 
            WebClient WC = new WebClient();
            string proverka;
            string DarkO;
            Test = "url";
            WC.Headers.Add("Cookie: cookies);
            proverka = WC.DownloadString(Test);
 
 
 
richTextBox1.Text = proverka;
            
 
 
        }
    }
}
В чем мне нужна помощь, сама html страничка скачивается, и прекрасно отображается в richTextBox'е
Но из этой страничке мне нужно вытащить нужное мне значение
Сама строка со значением выглядит примерно так:

HTML5
1
builedferma;test123defcom=123456789'
Мне нужно вытащить сами цифры 123456789

Как это сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2011, 03:29
Ответы с готовыми решениями:

Распарсить Html-страницу
<tr><th>Адрес</th><td> Санкт-Петербург, ул. Мира, д. 3, оф 230 <br>cv bcvbcvb sdfgbsdf Мне надо достать Санкт-Петербург, ул....

Как распарсить HTML-страницу
Пытаюсь спарсить содержимое href Облазил кучу сайтов, перепробовал кучу вариантов... не работает Собственно нужно.... загрузить...

Регулярные выражения: распарсить HTML-страницу
Привет всем! Подскажите, пожалуйста, пытаюсь спарсить с html документа нужную мне строку: <tr id="tr_PROPERTY_1"> ...

23
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 13
15.12.2011, 00:35  [ТС]
Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
 string s = "reloadToken=dgdgdfgdg32rg43tge43g'";
                    string reg = ("reloadToken=([a-z1-9]*)'");
                    Regex reg1 = new Regex(reg);
                    Match reg_m = reg1.Match(s);
                    while (reg_m.Success)
                    {
                        
                        textBox1.Text = reg_m.Groups[1].Value.ToString();
                    }
reloadToken=dgdgdfgdg32rg43tge43g'
Это значение каждый раз разное, его то мне и надо достать.
Как мне указать то, что каждый раз разное?
И как понять что будет парсить именно мою скачанную html страницу?
0
Заблокирован
16.12.2011, 05:50
Цитата Сообщение от BugattiVeyron Посмотреть сообщение
Как мне указать то, что каждый раз разное?...И как понять что будет парсить именно мою скачанную html страницу?
Я так понял, что нужно смотреть все страницы заново: пришла страница/не пришла и фильтровать. Либо константы создавать, как значения на основной странице. Либо нужно создавать новую страницу, и непонятно на каком языке распарсить.

Цитата Сообщение от BugattiVeyron Посмотреть сообщение
как понять что будет парсить именно мою скачанную html страницу?
Для меня это непонятно.
Иногда такие страницы сам парсю, но не всегда, ибо нет особых навыков в парсинге и сторонними кодами не пользуюсь.

Может, кто на форуме подскажет как парсить.

Но все же может попробовать их константами объявить? На страничках.
Есть же правила написания этих страниц, и придерживаться их?
Чтоб не создавать много мелких, можно же и большую создать.
0
9 / 9 / 2
Регистрация: 06.10.2011
Сообщений: 91
16.01.2012, 18:16
Давно небыл здесь, праздники)))
Так вот, парсить он у тебя все что угодно будет, вот это строка регулярное выражение:
C#
1
string reg = ("reloadToken=([a-z1-9]*)'");
Обьясню конкретнее, здесь написано что он ищет строку каторая начинаеться с "reloadToken= " далеше в скобках это группа каторая и будет у нас выводиться где либо, скобки означают группу, т.к. скобка у нас одна то она одна из одной=) внутри квадратных скобок написано что это значение может быть от A до Z английского алфавита и от 1 до 9 циферного алфавита=) далее после скобок идет " ' " что идет из вашего условия, тобиш он ищет до этого знака, если что непонятно спрашивай если нужно еще.
А насчет как парсить есть контролл WebBrowser покапай в эту сторону, есть webrequest если не ошибаюсь, гдето я видел тут на форуме описание примерное!
0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
18.01.2012, 14:54
мдя и я был таким когда-то... учи регулярные выражения в C#, при парсинге текста очччень помогает.
а насчет твоей задачи

C#
1
2
3
4
5
string data="reloadToken = dgdgdfgdg32rg43tge43g'";
Match match = Regex.Match(data, "reloadToken = (?<reloadToken>\\w+?)'", 
                     RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (match.Success)
       textBox1.Text = match.Groups["reloadToken"].Value;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2012, 14:54

Как оптимально распарсить большую HTML страницу и получить нужные данные
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt; &lt;html dir=&quot;ltr&quot;&gt; &lt;head&gt; &lt;title&gt;фото.галерея | На других посмотреть и...

Regex: распарсить страницу
Дано строку: &lt;!--7111&lt;!&gt;&lt;!&gt;0&lt;!&gt;5419&lt;!&gt;0&lt;!&gt;{&quot;all&quot;: , , , , , , , ,

Распарсить страницу, записывая результат в файл
Привет всем, мне нужно понять принцип работы с парсером, то есть, у меня есть код: string url =...

Как скачать страницу википедии и распарсить?
Уважаемые форумчане, мучаюсь полдня. Возникла задача скачать страницу википедии и достать конкретную информацию в приложение. все бы...

Распарсить страницу, используя регулярные выражения
Здравствуйте. Вопрос такой: в программу приходит ответ от сайта: &lt;img width=&quot;12&quot; height=&quot;12&quot;...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru