Не могу спарсить

samkelevra

Новичок
Регистрация
10.11.2016
Сообщения
9
Благодарностей
0
Баллы
1
Помогите спарсить,кому не сложно:
страница http://www.sportstats.com/hockey/russia/khl/upcoming-matches/
необходимо:
1.Дата
2.Время
3.Команда 1
4.Команда 2
5.Коэффициент на 1 команду,на ничью и на вторую команду.

Для первого (дата) получилось: (?<=14-2-0-0-1">)[\w\W]*?(?=</span></th><th>)
Для второго (время) получилось: (?<=-1-1-0-0">)[\w\W]*?(?=</td><td\ class="table-home"><a\ href=)
Третье и четвёртое долбался пару часов,не вышло.
Для пятого:
1 команда (?<=</a></td><td\ class="odds"\ xodds=")[\w\W]*?(?=">)
ничья- не вышло
2 команда так же вышло.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
Помогите спарсить,кому не сложно:
страница http://www.sportstats.com/hockey/russia/khl/upcoming-matches/
необходимо:
1.Дата
2.Время
3.Команда 1
4.Команда 2
5.Коэффициент на 1 команду,на ничью и на вторую команду.

Для первого (дата) получилось: (?<=14-2-0-0-1">)[\w\W]*?(?=</span></th><th>)
Для второго (время) получилось: (?<=-1-1-0-0">)[\w\W]*?(?=</td><td\ class="table-home"><a\ href=)
Третье и четвёртое долбался пару часов,не вышло.
Для пятого:
1 команда (?<=</a></td><td\ class="odds"\ xodds=")[\w\W]*?(?=">)
ничья- не вышло
2 команда так же вышло.
Такие запросы проще парсить через xPath, вот пример сниппета который все заносит в таблицу "Таблица 1":
C#:
IZennoTable table = project.Tables["Таблица 1"];
List<string[]> resultsList = instance.ActiveTab.FindElementsByXPath("//table[contains(@id,'nextMatches')]//tbody/tr")
  .Select(he =>
      new [] {
      he.FindChildByXPath("td[contains(@class,' first datet')]",0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'table-home')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'result-stats')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'table-away')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'odds')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'odds')]", 1).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'odds')]", 2).InnerText,
   }).ToList();

foreach (var arr in resultsList)
{
    table.AddRow(String.Join(";",arr));
}
Если через пост гет, можно и регуляркой, но лучше подключить парсер, и дальше опять запросами, при незначительном изменении дизайна не слетает шаблон.
 
Последнее редактирование:

samkelevra

Новичок
Регистрация
10.11.2016
Сообщения
9
Благодарностей
0
Баллы
1
Такие запросы проще парсить через xPath, вот пример сниппета который все заносит в таблицу "Таблица 1":
C#:
IZennoTable table = project.Tables["Таблица 1"];
List<string[]> resultsList = instance.ActiveTab.FindElementsByXPath("//table[contains(@id,'nextMatches')]//tbody/tr")
  .Select(he =>
      new [] {
      he.FindChildByXPath("td[contains(@class,' first datet')]",0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'table-home')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'result-stats')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'table-away')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'odds')]", 0).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'odds')]", 1).InnerText,
      he.FindChildByXPath("descendant::td[contains(@class,'odds')]", 2).InnerText,
   }).ToList();

foreach (var arr in resultsList)
{
    table.AddRow(String.Join(";",arr));
}
Если через пост гет, можно и регуляркой, но лучше подключить парсер, и дальше опять запросами, при незначительном изменении дизайна не слетает шаблон.
Cпасибо,но я ничерта не понял о чём ты ))) я в
этом деле не продвинутый юзер. То есть как я выше привёл пример,мне не спарсить команду 1 и команду 2 ?
Даже если я подключу парсер,я не знаю как им пользоваться,есть решение попроще ?
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
Cпасибо,но я ничерта не понял о чём ты ))) я в
этом деле не продвинутый юзер. То есть как я выше привёл пример,мне не спарсить команду 1 и команду 2 ?
Даже если я подключу парсер,я не знаю как им пользоваться,есть решение попроще ?
Проект с примером:
 

Вложения

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)