1

Решил написать дампер Сториса (портал с рассказами)

На странице рассказа вот так:

<h1 id="story_title">{ИМЯРАССКАЗА}
        <span class="vote">

Код таков:

        storyid++;

        listBox1.Items.Add("Checking story: " + storyid + "..");

        currStoryHTML = getHTML("http://site/story/" + storyid);

        if (currStoryHTML == "404NOTFOUND") return;

        Match match = Regex.Match(currStoryHTML, @"(?<=<<h1 id=" + "\"" + "story_title" + "\"" + ">>)(.*)(?=<span class=" + "\"" + "vote" + "\"" + ">)");

        if (match.Success)
        {
            listBox1.Items.Add("Story with ID: " + storyid + " have name: " + match);
        }
        else
        {
            listBox1.Items.Add("Story with ID: " + storyid + " do not have name OR invalid..");
            return;
        }

Не важно, существует ли рассказ. Всегда math.Success = false Поможете?

fori1ton
  • 23,403
AGrief
  • 403
  • 7
    Одна из величайших заповедей программиста - никогда не парси HTML регулярками, если тебе дороги твои мозги. А вообще, почему у тебя <<h1, а не <h1? – Mints97 Apr 14 '15 at 14:19
  • 3
    HTML не парсится регулярными выражениями. Для разбора и извлечения данных используйте Html Agility Pack: https://htmlagilitypack.codeplex.com – andreycha Apr 14 '15 at 14:21
  • Спасибо всем. Вопрос решен. – AGrief Apr 14 '15 at 14:33
  • 4
    Классическая ссылка по теме (должен же её кто-то запостить?) – VladD Apr 14 '15 at 14:55
  • Предпросмотр назад.. Зачем? Поставь скобки и бери нужную группу. – Qwertiy Apr 24 '15 at 23:44

1 Answers1

0

Никогда!! не стоит парсить Html регулярными выражениями, для парсинга Html есть бибилотека HtmlAgility Pack

  • Вы повторили комментарий от 14-го апреля, собственно. – VladD Apr 24 '15 at 21:59
  • Там были комментарии а не ответы – Sam_Fisher Apr 27 '15 at 14:43
  • 1
    Пожалуй. Но если вы даёте ответ, может, стоит привести и примерный код? – VladD Apr 27 '15 at 14:48