Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564

Обращение к родителю Xpath

18.03.2019, 15:04. Показов 2677. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не могу разобраться с xpath, и учебников на русском не могу найти, чтобы прям все возможности были описаны и применимы в python(если знаете, подскажите пожалуйста)
Но вопрос такой
HTML5
1
2
3
<table class="coupon-row" data-event-treeid="7896497"><div class="today-member-name nowrap " data-ellipsis="{}">  <span>Кокимбо Унидо</span>  </div>
<div class="today-member-name nowrap " data-ellipsis="{}" data-hasqtip="1">  <span>Депортес Унион Компаньяс</span>  </div>  
</table>
сначало я ищу все table
Python
1
titles = driver.find_elements_by_xpath("//div[@class='coupon-row']")
затем начинаю парсить данные
Python
1
2
3
4
for t in titles:
    team = t.find_elements_by_xpath("//div[@class='today-member-name nowrap ']")
    teams = team[0].text + " - " + team[1].text
    print(teams + " id:" + t.get_attribute('data-event-treeid'))
и вот t.get_attribute('data-event-treeid') работает как надо, выдает id каждого куска кода который в t, а t.find_elements_by_xpath("//div[@class='today-member-name nowrap ']") продолжает я так понимаю искать этот класс полностью на странице
вывод такой
Code
1
2
3
4
Кокимбо Унидо - Депортес Унион Компаньяс id:7896497
Кокимбо Унидо - Депортес Унион Компаньяс id:7895238
Кокимбо Унидо - Депортес Унион Компаньяс id:7896510
Кокимбо Унидо - Депортес Унион Компаньяс id:7896421
как мне через xpath обратится именно к данным которые в t?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2019, 15:04
Ответы с готовыми решениями:

Почему xpath в xpather работает как надо, а html.xpath обрезает последний элемент
Тут все ок. http://xpather.com/QdzC7iC7 Добавляю выражение для скрипта, но там обрезается артикул: import requests_html from...

Обращение к родителю
В общем есть такой страшный код: &lt;a onclick=&quot;return hs.expand(this)&quot; href='{$smarty.const.URL_PRODUCTS_PICTURES}/{if...

Обращение к объекту родителю
Здравствуйте, у меня вот такая ситуация: Я создал два класса: type TClass1 = class //бла, бла, бла procedure...

25
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
18.03.2019, 15:29
Как-то непонятно. Какое отношение имеет название темы к вопросу?
В t у Вас находятся, по сути, названия команд. Вы к ним в цикле итак обращаетесь же. В чём проблема тогда?
0
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
18.03.2019, 15:38  [ТС]
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
Как-то непонятно. Какое отношение имеет название темы к вопросу?
В t у Вас находятся, по сути, названия команд. Вы к ним в цикле итак обращаетесь же. В чём проблема тогда?
вот в чем
если например HTML код
HTML5
1
2
3
4
5
6
7
8
9
<table class="coupon-row" data-event-treeid="7896497"><div class="today-member-name nowrap " data-ellipsis="{}">  <span>Кокимбо Унидо</span>  </div>
<div class="today-member-name nowrap " data-ellipsis="{}" data-hasqtip="1">  <span>Депортес Унион Компаньяс</span>  </div>  
</table>
<table class="coupon-row" data-event-treeid="7895238"><div class="today-member-name nowrap " data-ellipsis="{}">  <span>Команда 1</span>  </div>
<div class="today-member-name nowrap " data-ellipsis="{}" data-hasqtip="1">  <span>Команда 2</span>  </div>  
</table>
<table class="coupon-row" data-event-treeid="7896510"><div class="today-member-name nowrap " data-ellipsis="{}">  <span>Команда 3</span>  </div>
<div class="today-member-name nowrap " data-ellipsis="{}" data-hasqtip="1">  <span>Команда 4</span>  </div>  
</table>
скрипт выведит
Code
1
2
3
Кокимбо Унидо - Депортес Унион Компаньяс id:7896497
Кокимбо Унидо - Депортес Унион Компаньяс id:7895238
Кокимбо Унидо - Депортес Унион Компаньяс id:7896510
а надо, чтобы
Code
1
2
3
Кокимбо Унидо - Депортес Унион Компаньяс id:7896497
команда 1 - Команда 2 id:7895238
Команда 3 - Команда 4 id:7896510
поэтому я и пишу, что t.get_attribute('data-event-treeid') работает как надо, а t.find_elements_by_xpath("//div[@class='today-member-name nowrap ']") выводит постоянно одну и ту же информацию
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.03.2019, 16:36
Цитата Сообщение от HAIRY Посмотреть сообщение
а t.find_elements_by_xpath("//div[@class='today-member-name nowrap ']") продолжает я так понимаю искать этот класс полностью на странице
Уберите рекурсивный поиск - //.
0
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
18.03.2019, 16:45  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Сообщение от HAIRY
а t.find_elements_by_xpath("//div[@class='today-member-name nowrap ']") продолжает я так понимаю искать этот класс полностью на странице
Уберите рекурсивный поиск - //.
так скрипт тогда ничего не находит, я пробовал так "./div[@class='today-member-name nowrap ']" перед тем как создать тему.
попробовал так ("div[@class='today-member-name nowrap ']")
вывод такой же
Code
1
2
3
4
5
[]
Traceback (most recent call last):
 
    teams = team[0].text + " - " + team[1].text
IndexError: list index out of range
вот что передается в t
HTML5
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
<table class="coupon-row-item ">
 <tbody>
     <tr data-mutable-id="" class=" sub-row">
      
 
 
    
<td class="first member-area   " rowspan="1" data-mutable-id="MRMAmainRow" data-member-area="member-area">
<table class="member-area-content-table  " data-broadcasts-info="[]">
  
   <tbody><tr>
 
 <td class="today-name">
 <div data-members="true" data-has-additional-markets="true" class="command">
  <b class="member-number">1.</b>
 <div class="today-member-name nowrap " data-ellipsis="{}">
 <span>Локомотив Горна-Оряховица</span>
 </div>
 </div>
 </td>
 
 
 
 <td class="blurb-icon-td  row-span-2
  one-line" rowspan="2">
 <div class="broadcasts-menu-container-blurb">
     </div>
 </td>
 
 <td rowspan="2" class="date ">
  18:30
  </td>
  </tr>
  <tr>
 
 <td class="today-name">
 <div data-members="true" data-has-additional-markets="true" class="command">
  <b class="member-number">2.</b>
 <div class="today-member-name nowrap " data-ellipsis="{}">
 <span>Арда Кырджали</span>
 </div>
 </div>
 </td>
 
  </tr>
    </tbody></table>
</td>
 
       
 
<td class="main-row-buttons " rowspan="1" data-mutable-id="BmainRow">
 <table>
  <tbody><tr>
 <td data-event-statistics="true" class="member-area-button">
 <div class="member-area-buttons-label">
 <div class="statistics-button-ico"></div>
 <img src="/cdn/3-0-702-1021/images/loading.gif" class="loading-ico" alt="">
 </div>
 </td>
</tr>
   <tr>
 <td class="member-area-button" id="event-more-view-7896438" data-event-more-view="event-more-view" treeid="7896438" islive="false" isseparatedbutton="false">
 <div class="member-area-buttons-label">
 <span class="event-more-view">+5</span>
 <img src="/cdn/3-0-702-1021/images/loading.gif" class="loading-ico" alt="">
 </div>
 </td>
</tr>  </tbody></table>
</td>       
 .......
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.03.2019, 16:50
Цитата Сообщение от HAIRY Посмотреть сообщение
вывод такой же
Код
[]
Traceback (most recent call last):
teams = team[0].text + " - " + team[1].text
IndexError: list index out of range
Так не находит или ошибка? Это разные вещи.
У меня все находит.

Добавлено через 2 минуты
Python
1
2
3
4
5
6
7
8
9
root = lxml.html.fromstring(html)
 
tables = root.xpath(".//table[@class='coupon-row']")
for table in tables:
    for div in table.xpath('div[@class="today-member-name nowrap "]'):
        print(
            div.xpath('span/text()')[0],
            table.attrib['data-event-treeid'],
        )

Code
1
2
3
4
5
6
Кокимбо Унидо 7896497
Депортес Унион Компаньяс 7896497
Команда 1 7895238
Команда 2 7895238
Команда 3 7896510
Команда 4 7896510
1
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
18.03.2019, 17:03  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Так не находит или ошибка? Это разные вещи.
ну так ошибка то из-за того, что не находит
вот что я делаю не так:
Python
1
2
3
4
5
titles = driver.find_elements_by_xpath(".//div[@class=' coupon-row']")
print(len(titles))
for table in titles:
    for div in table.find_elements_by_xpath('div[@class="today-member-name nowrap "]'):
        print(div.get_attribute('innerHTML'))
вывод:
Code
1
2
3
6
 
Process finished with exit code 0
нашел же 6 кусков кода, но почему не выводит?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
18.03.2019, 18:03
Цитата Сообщение от HAIRY Посмотреть сообщение
но почему не выводит?
Дайте url страницы. По вашему html (если его скормить selenium'у как файл) он тоже не находит элементы div внутри таблиц.
Но как я уже показал на примере - у lxml такой проблемы нет.
0
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
18.03.2019, 18:10  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Дайте url страницы. По вашему html (если его скормить selenium'у как файл) он тоже не находит элементы div внутри таблиц.
Но как я уже показал на примере - у lxml такой проблемы нет.
marathon bet.com/su/betting/11?periodGroupAllEvents=2
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
20.03.2019, 08:21
Цитата Сообщение от HAIRY Посмотреть сообщение
и применимы в python
xpath от питона никак не зависит, вот тут почитай https://testerslittlehelper.wo... eal-xpath/

разве то, что ты пытаешься сделать не легче просто получать из атрибута data-event-name ? (пример data-event-name="Пхукет Спорт Эссосиэйшн до 19 - Сураттхани до 19")

соответственно получаем все элементы //div[@class=' coupon-row'] у них берем data-event-name и data-event-treeid
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.03.2019, 12:59
HAIRY,
Этот сайт проблематично открыть без VPN, прикрепите полный html код этой страницы сюда.
Мое мнение таково: html немного кривой (по крайней мере валидатор на него ругается) и парсер selenium'а не может его правильно распарсить. lxml парсит без проблем.
Если бы вы прикрепили html - возможно кто-то еще попробовал бы распарсить и смог бы подтвердить либо опровергнуть мое мнение.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.03.2019, 13:40
Garry Galler, дайте ссылку
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.03.2019, 14:58
m0nte-cr1st0,
Она в посте ТС'а - № 9
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.03.2019, 15:45
Code
1
pip install cssselect
Python
1
2
3
4
5
6
7
8
9
10
11
import lxml.html
import lxml.cssselect
from urllib.request import Request, urlopen
 
tables = lxml.html.fromstring(urlopen(Request('https://www.marathonbet.com/su/betting/11?periodGroupAllEvents=2', headers={'User-Agent': 'Mozilla/5.0'})).read()).cssselect(".coupon-row")
 
for table in tables:
  game = ''
  for name in table.cssselect("div.today-member-name.nowrap"):
    game += name.text_content().strip() + ' - '
  print(game[:-3] + ' id:' + table.attrib['data-event-treeid'])
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Англия до 19 - Чехия до 19 id:7856791
Италия до 19 - Бельгия до 19 id:7856876
Турция до 19 - Шотландия до 19 id:7856866
Азербайджан до 19 - Россия до 19 id:7856786
Франция до 19 - Польша до 19 id:7856857
Германия до 19 - Хорватия до 19 id:7856831
Кипр до 21 - Гибралтар до 21 id:7856888
Виртус Франкавилла - Витербезе Кастренсе id:7902671
Потенца - Леонцио id:7902672
Альбалонга - Трастевере id:7902775
Перголеттезе - Чиливерге Маццано id:7902774
Пичерно - Джельбисон id:7902673
Фландрия-резерв - Тальерес Ремедиос-резерв id:7902423
Депортиво Рьестра-резерв - Эстудиантес Касерос-резерв id:7903093
Олл Бойз-резерв - Сан Мигель-резерв id:7902425
Дефенсорес Бельграно-резерв - Атлетико Платенсе-резерв id:7902424
Итусаинго-резерв - Архентино Кильмес-резерв id:7903102
Мидланд-резерв - Док Суд-резерв id:7903099
Бейтар Кфар-Саба Шломи - Хапоэль Азор id:7902670
Аль-Кармель - Кфарсум id:7901397
Аль-Ярмук - Аль-Вахда id:7901394
Фейеноорд-резерв - Эраклес-резерв id:7902683
Аль-Шулла - Аль-Айн id:7901457
Аль-Мойзел - Аль-Джил id:7901455
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.03.2019, 16:28
m0nte-cr1st0,
Это нужно сделать через selenium. То что через lxml можно и так понятно и выше я уже давал пример.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.03.2019, 16:29
Garry Galler, но зачем это через селениум делать?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.03.2019, 16:38
Цитата Сообщение от m0nte-cr1st0 Посмотреть сообщение
зачем это через селениум делать?
Ну во-первых, потому что так нужно ТС'у.
А во вторых, тут спортивный интерес: выяснить почему через selenium не получилось.

Добавлено через 7 минут
P.S. Я проверить непосредственно через url не могу - этот сайт забанен роскомнадзором и достучаться до него можно только обходными путями (а это мне лень делать).
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.03.2019, 16:58
Garry Galler, HAIRY,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
 
 
options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
 
driver.get('https://www.marathonbet.com/su/betting/11?periodGroupAllEvents=2')
tables = driver.find_elements_by_css_selector(".coupon-row")
 
for table in tables:
    game = ''
    for name in table.find_elements_by_css_selector("div.today-member-name.nowrap"):
        game += name.text + ' - '
    print(game[:-3] + ' id:' + table.get_attribute('data-event-treeid'))
0
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
20.03.2019, 19:06  [ТС]
в этоге сделал так
Python
1
2
3
4
5
6
7
8
9
titles = driver.find_elements_by_xpath(".//div[@class=' coupon-row']")
titles = titles + driver.find_elements_by_xpath(".//div[@class='bg coupon-row']")
print(len(titles))
statistics = []
for t in titles:
    team = t.find_elements_by_class_name("today-member-name")
    teams = team[0].text + " - " + team[1].text
    id = t.get_attribute('data-event-treeid')
    print(teams + " id:" + id)
хотел по правильному, но сделал как всегда

Garry Galler, вот код
HTML5
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<div class=" coupon-row" data-event-treeid="7902426" data-event-name="Депортиво УАИ Уркиса-резерв - Акасусо-резерв" data-live="false" data-event-page="/su/betting/Football/Argentina/Primera+B+Metropolitana+Reserve+Division/Deportivo+UAI+Urquiza+Reserves+vs+Acassuso+Reserves+-+7902426/">
 
 
<table class="coupon-row-item ">
 <tbody>
     <tr data-mutable-id="" class=" sub-row">
      
 
 
    
<td class="first member-area   " rowspan="1" data-mutable-id="MRMAmainRow" data-member-area="member-area">
<table class="member-area-content-table  " data-broadcasts-info="[]">
  
   <tbody><tr>
 
 <td class="today-name">
 <div data-members="true" data-has-additional-markets="true" class="command">
  <b class="member-number">1.</b>
 <div class="today-member-name nowrap " data-ellipsis="{}">
 <span>Депортиво УАИ Уркиса-резерв</span>
 </div>
 </div>
 </td>
 
 
 
 <td class="blurb-icon-td  row-span-2
  one-line" rowspan="2">
 <div class="broadcasts-menu-container-blurb">
     </div>
 </td>
 
 <td rowspan="2" class="date ">
  21:00
  </td>
  </tr>
  <tr>
 
 <td class="today-name">
 <div data-members="true" data-has-additional-markets="true" class="command">
  <b class="member-number">2.</b>
 <div class="today-member-name nowrap " data-ellipsis="{}">
 <span>Акасусо-резерв</span>
 </div>
 </div>
 </td>
 
  </tr>
    </tbody></table>
</td>
 
       
 
<td class="main-row-buttons " rowspan="1" data-mutable-id="BmainRow">
 <table>
  <tbody><tr>
 <td data-event-statistics="true" class="member-area-button">
 <div class="member-area-buttons-label">
 <div class="statistics-button-ico"></div>
 <img src="/cdn/3-0-703/images/loading.gif" class="loading-ico" alt="">
 </div>
 </td>
</tr>
   <tr>
 <td class="member-area-button" id="event-more-view-7902426" data-event-more-view="event-more-view" treeid="7902426" islive="false" isseparatedbutton="false">
 <div class="member-area-buttons-label">
 <span class="event-more-view">+5</span>
 <img src="/cdn/3-0-703/images/loading.gif" class="loading-ico" alt="">
 </div>
 </td>
</tr>  </tbody></table>
</td>       
          <td colspan="1" class="price height-column-with-price    first-in-main-row  coupone-width-1" data-coeff-uuid="-1562066771-31684811488" data-sel="{&quot;sn&quot;:&quot;Депортиво УАИ Уркиса-резерв (победа)&quot;,&quot;mn&quot;:&quot;Результат матча&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684811488,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;2.41&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;141/100&quot;,&quot;1&quot;:&quot;2.41&quot;,&quot;2&quot;:&quot;+141&quot;,&quot;3&quot;:&quot;1.41&quot;,&quot;4&quot;:&quot;-0.709&quot;,&quot;5&quot;:&quot;1.41&quot;}}" data-mutable-id="S1mainRow" data-market-type="RESULT">
 
       <span class="selection-link
normal 
" data-selection-price="2.41" data-prt="CP" data-selection-key="7041506@Match_Result.1">2.41</span>
    </td>      <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="-605447858-31684811489" data-sel="{&quot;sn&quot;:&quot;Ничья&quot;,&quot;mn&quot;:&quot;Результат матча&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684811489,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;3.48&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;62/25&quot;,&quot;1&quot;:&quot;3.48&quot;,&quot;2&quot;:&quot;+248&quot;,&quot;3&quot;:&quot;2.48&quot;,&quot;4&quot;:&quot;-0.403&quot;,&quot;5&quot;:&quot;2.48&quot;}}" data-mutable-id="S2mainRow" data-market-type="RESULT">
 
       <span class="selection-link
normal 
" data-selection-price="3.48" data-prt="CP" data-selection-key="7041506@Match_Result.draw">3.48</span>
    </td>      <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="-1562066769-31684811485" data-sel="{&quot;sn&quot;:&quot;Акасусо-резерв (победа)&quot;,&quot;mn&quot;:&quot;Результат матча&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684811485,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;2.56&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;39/25&quot;,&quot;1&quot;:&quot;2.56&quot;,&quot;2&quot;:&quot;+156&quot;,&quot;3&quot;:&quot;1.56&quot;,&quot;4&quot;:&quot;-0.641&quot;,&quot;5&quot;:&quot;1.56&quot;}}" data-mutable-id="S3mainRow" data-market-type="RESULT">
 
       <span class="selection-link
normal 
" data-selection-price="2.56" data-prt="CP" data-selection-key="7041506@Match_Result.3">2.56</span>
    </td>             <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="444927200-31684810177" data-sel="{&quot;sn&quot;:&quot;Депортиво УАИ Уркиса-резерв (победа) или ничья&quot;,&quot;mn&quot;:&quot;Результат&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684810177,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.43&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;43/100&quot;,&quot;1&quot;:&quot;1.43&quot;,&quot;2&quot;:&quot;-233&quot;,&quot;3&quot;:&quot;0.43&quot;,&quot;4&quot;:&quot;0.43&quot;,&quot;5&quot;:&quot;-2.33&quot;}}" data-mutable-id="S4mainRow" data-market-type="DOUBLE_CHANCE">
 
       <span class="selection-link
normal 
" data-selection-price="1.43" data-prt="CP" data-selection-key="7041506@Result.HD">1.43</span>
    </td>      <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="444927197-31684810178" data-sel="{&quot;sn&quot;:&quot;Депортиво УАИ Уркиса-резерв (победа) или Акасусо-резерв (победа)&quot;,&quot;mn&quot;:&quot;Результат&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684810178,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.24&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;6/25&quot;,&quot;1&quot;:&quot;1.24&quot;,&quot;2&quot;:&quot;-417&quot;,&quot;3&quot;:&quot;0.24&quot;,&quot;4&quot;:&quot;0.24&quot;,&quot;5&quot;:&quot;-4.17&quot;}}" data-mutable-id="S5mainRow" data-market-type="DOUBLE_CHANCE">
 
       <span class="selection-link
normal 
" data-selection-price="1.24" data-prt="CP" data-selection-key="7041506@Result.HA">1.24</span>
    </td>      <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="444926983-31684810167" data-sel="{&quot;sn&quot;:&quot;Акасусо-резерв (победа) или ничья&quot;,&quot;mn&quot;:&quot;Результат&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684810167,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.48&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;12/25&quot;,&quot;1&quot;:&quot;1.48&quot;,&quot;2&quot;:&quot;-209&quot;,&quot;3&quot;:&quot;0.48&quot;,&quot;4&quot;:&quot;0.48&quot;,&quot;5&quot;:&quot;-2.09&quot;}}" data-mutable-id="S6mainRow" data-market-type="DOUBLE_CHANCE">
 
       <span class="selection-link
normal 
" data-selection-price="1.48" data-prt="CP" data-selection-key="7041506@Result.AD">1.48</span>
    </td>             <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="189046902-31684810169" data-sel="{&quot;sn&quot;:&quot;Депортиво УАИ Уркиса-резерв (0)&quot;,&quot;mn&quot;:&quot;Победа с учетом форы&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684810169,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.8199999999999998&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;41/50&quot;,&quot;1&quot;:&quot;1.82&quot;,&quot;2&quot;:&quot;-122&quot;,&quot;3&quot;:&quot;0.82&quot;,&quot;4&quot;:&quot;0.82&quot;,&quot;5&quot;:&quot;-1.22&quot;}}" data-mutable-id="S7mainRow" data-market-type="HANDICAP">
     (0)<br>  <span class="selection-link
normal 
" data-selection-price="1.82" data-prt="CP" data-selection-key="7041506@Draw_No_Bet.HB_H">1.82</span>
    </td>      <td colspan="1" class="price height-column-with-price    coupone-width-1" data-coeff-uuid="189046895-31684810170" data-sel="{&quot;sn&quot;:&quot;Акасусо-резерв (0)&quot;,&quot;mn&quot;:&quot;Победа с учетом форы&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31684810170,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.92&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;23/25&quot;,&quot;1&quot;:&quot;1.92&quot;,&quot;2&quot;:&quot;-109&quot;,&quot;3&quot;:&quot;0.92&quot;,&quot;4&quot;:&quot;0.92&quot;,&quot;5&quot;:&quot;-1.09&quot;}}" data-mutable-id="S8mainRow" data-market-type="HANDICAP">
     (0)<br>  <span class="selection-link
normal 
" data-selection-price="1.92" data-prt="CP" data-selection-key="7041506@Draw_No_Bet.HB_A">1.92</span>
    </td>             <td colspan="1" class="price height-column-with-price     coupone-width-1" data-coeff-uuid="-2048249828-31691710918" data-sel="{&quot;sn&quot;:&quot;Меньше 2.5&quot;,&quot;mn&quot;:&quot;Тотал голов&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31691710918,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.92&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;23/25&quot;,&quot;1&quot;:&quot;1.92&quot;,&quot;2&quot;:&quot;-109&quot;,&quot;3&quot;:&quot;0.92&quot;,&quot;4&quot;:&quot;0.92&quot;,&quot;5&quot;:&quot;-1.09&quot;}}" data-mutable-id="S9mainRow" data-market-type="TOTAL">
     (2.5)<br>  <span class="selection-link
normal 
" data-selection-price="1.92" data-prt="CP" data-selection-key="7041506@Total_Goals.Under_2.5">1.92</span>
    </td>      <td colspan="1" class="price height-column-with-price     coupone-width-1" data-coeff-uuid="-1329610422-31691710916" data-sel="{&quot;sn&quot;:&quot;Больше 2.5&quot;,&quot;mn&quot;:&quot;Тотал голов&quot;,&quot;ewc&quot;:&quot;1/1 1&quot;,&quot;cid&quot;:31691710916,&quot;prt&quot;:&quot;CP&quot;,&quot;ewf&quot;:&quot;1.0&quot;,&quot;epr&quot;:&quot;1.8&quot;,&quot;prices&quot;:{&quot;0&quot;:&quot;4/5&quot;,&quot;1&quot;:&quot;1.80&quot;,&quot;2&quot;:&quot;-125&quot;,&quot;3&quot;:&quot;0.80&quot;,&quot;4&quot;:&quot;0.80&quot;,&quot;5&quot;:&quot;-1.25&quot;}}" data-mutable-id="S10mainRow" data-market-type="TOTAL">
     (2.5)<br>  <span class="selection-link
normal 
" data-selection-price="1.8" data-prt="CP" data-selection-key="7041506@Total_Goals.Over_2.5">1.80</span>
    </td>                      </tr>    </tbody>
</table>
 
<div class="coupon-row-item sport-stats coupon-statistics" data-loaded="false" data-event-statistics-container="true">
</div>
 
 
 
 
 </div>
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
20.03.2019, 19:20
HAIRY, у вас результат тот же, что и у меня, но мой код быстрее работает

вообще не понятно, зачем Вам здесь селениум, если его производительность в 20 раз меньше, чем у чистого lxml, который эти данные парсит за полсекунды...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2019, 19:20
Помогаю со студенческими работами здесь

Обращение к родителю фрейма
if not (FRM.Parent is TTabSheet) then TTabSheet(FRM.Parent).Caption:= 'test'; При обращении к родителю фрейма выходит ошибка...

Обращение к родителю при hover дочернего блока
Всем доброго времени суток! Сразу приведу пример html-кода: &lt;div class=&quot;item&quot;&gt; &lt;div class=&quot;icon&quot;&gt;...&lt;/div&gt; ...

Привязать Layout к родителю
Привет, Не отображает виджеты, как исправить? Hero::Hero(QWidget *parent) : QMainWindow(parent) { ...

Даем родителю стили
Вот есть такая загадка :) &lt;ul id=&quot;vertical-multilevel-menu&quot;&gt; &lt;li&gt;текст&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;#&quot;...

Как обратиться к родителю
при клике по ссылки нужно скрыть li, ли много и нужно скрыть именно родительский каким образом можно это сделать? $('#nav ul li...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru