возможно получить конкретную таблицу с помощью xpath - PullRequest
0 голосов
/ 04 июня 2018

возможно получить конкретную таблицу с помощью xpath и тега таблицы следующим образом, большое спасибо!

<table border="0" cellspacing="1" cellpadding="1" class="bigborder" width="1050">

* Выше указанного тега таблицы можно найти в этом URL, еще раз спасибо!

import requests
from lxml import html

req = requests.get("url")
raw_html = html.fromstring(req.text)
tr = raw_html.xpath('//*[@id="innerContent"]/table/tbody/tr/td[2]/form/table[4]//tr/text()')
print("".join([x.replace("\t", "").replace("\r\n","").strip() for x in tr]))

Вывод: None

Ожидаемый вывод:

491 12 20/03/2016 ST / "Turf" / "A         " 1200 G 4 12 052 C S Shum K K
Chiong 9-1/4 92 112 8  11  12 1.11.59 1067 TT/B

456 09 06/03/2016 ST / "Turf" / "C         " 1200 G 4 8 052 C S Shum G 
Lerena 8-3/4 16 126 9  10  9 1.11.42 1078 TT1/B1

1 Ответ

0 голосов
/ 05 июня 2018

Атрибут id со значением «innerContent» не существует в HTML, вы использовали его в своем xpath.Вы можете получить список элементов tr, из которых вы можете извлечь строки.То, как вы это сделали, это искал текстовый элемент тега tr, который не существует.Вы можете получить все строки следующим образом.

import requests
from lxml import html
import re

req = requests.get(<URL>)
raw_html = html.fromstring(req.text)
lines = raw_html.xpath('//form/table[4]/tr')
for line in lines:
    print(re.sub( '\s+', ' ', line.xpath("string()").replace("\t"," ").replace("\r"," ").replace("\n"," ")).strip())

Выходы:

RaceIndex Pla. Date RC/Track/Course Dist. G RaceClass Dr Rtg. Trainer Jockey LBW Win Odds Act.Wt. RunningPosition Finish Time Declar.Horse Wt. Gear VideoReplay
17/18 Season
264 06 13/12/2017 HV / "Turf" / "C " 1650 G 5 2 013 C W Chang W M Lai 6-1/2 15 113 4 4 3 6 1.41.76 1115 TT/B-
181 13 11/11/2017 ST / "Turf" / "A " 1400 GF 5 8 016 C W Chang W M Lai 6 89 113 13 13 12 13 1.23.58 1109 TT/B2
138 09 25/10/2017 HV / "Turf" / "C+3 " 1650 GF 5 10 018 C W Chang W M Lai 3-1/2 37 113 10 11 10 9 1.40.77 1100 TT
068 11 27/09/2017 HV / "Turf" / "C+3 " 1650 GF 5 7 020 C W Chang W M Lai 8 24 113 4 5 5 11 1.41.93 1102 TT
031 04 13/09/2017 HV / "Turf" / "B " 1650 GF 5 7 020 C W Chang W M Lai 1-3/4 45 114 7 8 7 4 1.41.43 1099 TT/B-
013 11 06/09/2017 HV / "Turf" / "A " 1650 G 5 11 020 C W Chang W M Lai 8-1/2 16 113 11 11 11 11 1.42.61 1110 TT/B
16/17 Season
707 02 07/06/2017 HV / "Turf" / "A " 1650 G 5 4 016 C W Chang W M Lai 2 31 113 10 10 8 2 1.40.41 1084 TT/B
589 12 23/04/2017 ST / "AWT" / "-" 1200 GD 5 12 020 C W Chang W M Lai 12 39 113 11 12 12 1.11.33 1082 TT/CP-/B2
481 10 12/03/2017 ST / "AWT" / "-" 1650 GD 5 13 023 C S Shum H T Mo 12-1/2 24 108 14 14 13 10 1.40.66 1068 TT/CP
390 13 05/02/2017 ST / "Turf" / "C " 1400 G 5 8 026 C S Shum H T Mo 5-3/4 14 111 11 11 12 13 1.23.93 1074 TT/CP
344 04 18/01/2017 ST / "AWT" / "-" 1200 GD 5 12 028 C S Shum H T Mo 5-1/2 60 112 11 11 4 1.10.46 1077 TT/B-/CP1
286 10 27/12/2016 ST / "Turf" / "A+3 " 1200 G 5 3 030 C S Shum O Murphy 7 11 123 5 5 10 1.12.18 1075 TT/B
231 09 04/12/2016 ST / "AWT" / "-" 1200 GD 5 6 033 C S Shum Z Purton 4 19 126 6 7 9 1.09.65 1066 TT/B
223 11 30/11/2016 HV / "Turf" / "A " 1200 G 5 8 035 C S Shum N Rawiller 5 10 130 10 11 11 1.11.47 1062 TT/B
213 07 27/11/2016 ST / "Turf" / "C " 1400 G 5 6 035 C S Shum Z Purton 2-1/2 11 128 6 7 6 7 1.23.50 1079 TT/B
103 14 16/10/2016 ST / "Turf" / "C " 1600 GF 5 14 035 C S Shum N Rawiller 25-3/4 11 128 1 2 6 14 1.39.40 1078 TT/B
049 07 25/09/2016 ST / "Turf" / "A " 1400 GF 5 9 036 C S Shum N Rawiller 1-3/4 11 129 7 9 9 7 1.23.23 1077 TT/B
001 05 03/09/2016 ST / "Turf" / "B " 1200 G 5 7 036 C S Shum N Rawiller 3-1/2 70 125 9 9 5 1.09.89 1086 TT/B
15/16 Season
639 12 14/05/2016 ST / "AWT" / "-" 1650 WS 4 8 042 C S Shum H N Wong 20-1/2 99 108 6 5 9 12 1.41.86 1043 TT/B
605 13 01/05/2016 ST / "Turf" / "B " 1400 G 4 10 046 C S Shum M L Yeung 8-1/4 99 117 6 4 5 13 1.24.19 1053 TT/B
527 09 03/04/2016 ST / "Turf" / "B+2 " 1400 G 4 13 049 C S Shum C Schofield 5-3/4 99 122 12 13 12 9 1.23.16 1065 TT/B
491 12 20/03/2016 ST / "Turf" / "A " 1200 G 4 12 052 C S Shum K K Chiong 9-1/4 92 112 8 11 12 1.11.59 1067 TT/B
456 09 06/03/2016 ST / "Turf" / "C " 1200 G 4 8 052 C S Shum G Lerena 8-3/4 16 126 9 10 9 1.11.42 1078 TT1/B1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...