2016-06-30 5 views
-1

Мне нужно извлечь определенные данные с веб-сайта.Извлечение данных из источника страницы html

Я смотрел это видео youtube https://www.youtube.com/watch?v=rru3G7PLVjw и примерно имеет смысл как его кодировать.

В основном то, что я хочу сделать, это извлечь и сохранить (кнопка радио текст) Очень легко!, Довольно легко и не просто в список

от источника страницы из https://docs.google.com/forms/d/1Mout_ImbF9N16EuCiYOxCrL6MbkUVkIEzijO1PAUQ68/viewform?key=pqbhTz7PIHum_4qKEdbUWVg

, а затем распечатать вне элемента в списке

Ниже приведен код C#, который я написал на основе видео youtube.

using System.Net; 
using System; 
using System.Collections.Generic; 
using System.Text.RegularExpressions; 

namespace ExtractDataFromWebsite 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      List<string> radioOptions = new List<string>(); 
      WebClient web = new WebClient(); 

      // download html from certain website 
      string html = web.DownloadString("https://docs.google.com/forms/d/1Mout_ImbF9N16EuCiYOxCrL6MbkUVkIEzijO1PAUQ68/viewform?key=pqbhTz7PIHum_4qKEdbUWVg"); 

      MatchCollection m1 = Regex.Matches(html, @"<input\stype=/"radio"\sname=/"entry.2362106/"\svalue="(.+)\sid =/ "group_2362106_" 
       , RegexOptions.Singleline); 
      foreach (Match m in m1) 
      { 
        string radioOption = m.Groups[1].Value; 
        radioOptions.Add(radioOption); 
      } 
      for (int i=0; i< radioOptions.Count;i++) 
       Console.WriteLine(""+ radioOptions[i]); 

      Console.ReadKey(); 
     } 
    } 
} 

Однако линия MatchCollection m1 = Regex.Matches ...... есть некоторые проблемы, которые я не знаю, как исправить.

Надежда кто-то может дать мне подсказку или помочь решить вышеуказанную проблему Большое спасибо

+0

предлагает вам прочитать этот вопрос [] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self -contained-теги/1732454 # 1732454). –

ответ

0

Посмотрите на HtmlAgilityPack. Вы можете загрузить исходный код из вашего ответа webclient в новый htmldocument и пройти его довольно легко оттуда.

0

Попробуйте это регулярное выражение в качестве значения экстрактора:

MatchCollection m1 = Regex.Matches(html, "<input type=\"radio\".+?value=\"(.+?)\".+?\">" 
      , RegexOptions.Singleline); 
Смежные вопросы