Это ссылка на фактический HTML:Как я могу достичь этого набора тегов TR?
doc = Nokogiri::HTML(open('https://www.google.com/finance?q=NYSE%3AAA&fstype=iii'))
И приблизительная HTML фрагмент:
<div id="incannualdiv">
<table id="fs-table">
<tbody>
<tr>..</tr>
...
<tr>
<td>Net Income</td>
<td>100</td>
</tr>
<tr>..</tr>
</tbody>
</table>
</div>
Эти детали я работаю с:
doc = Nokogiri::HTML(open('https://www.google.com/finance?q=NYSE%3AAA&fstype=iii'))
div = doc.at "div[@id='incannualdiv']" #div containing the table i want
table = div.at 'table' #table containing tbody i want
tbody = table.at 'tbody' #tbody containing tr's I want
trs = tbody.at 'tr' #SHOULD be all tr's of that table/tbody - but it's only the first TR?
Я ожидаю этот последний бит, чтобы дать мне ВСЕ теги <TR>
, которые будут включать в себя <TD>
, который я ищу, но на самом деле это только дает мне первый <TR>
.
Вот следующая часть:
irb(main):023:0> a = nil
=> nil
irb(main):024:0> doc.css('#incannualdiv > #fs-table tr').each { |e| if e.text.include? "Net Income\n"; a = e.text; end}
=> 0
irb(main):025:0> a
=> "Net Income\n\n191.00\n611.00\n254.00\n-1,151.00\n"
irb(main):026:0> a.split"\n"
=> ["Net Income", "", "191.00", "611.00", "254.00", "-1,151.00"]
Было бы полезно, если вы также обновили свой образец HTML. «Чистый доход \ n \ n191.00 \ n611.00 \ n254.00 \ n-1,151.00 \ n" в нем не отражен. – mraaroncruz
Nevermind, я просто пошел по ссылке. Вам нужен только «чистый доход», а не другой «чистый доход ...»? – mraaroncruz
Да, точно, вы поняли. извините за дерьмовый образец html, но настоящий html ... хорошо ... сложный. + 1 за помощь ;-) – Ramy