首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用样式属性Ruby用Nokogiri抓取表数据

使用样式属性Ruby用Nokogiri抓取表数据
EN

Stack Overflow用户
提问于 2015-05-23 22:44:20
回答 1查看 576关注 0票数 0

我想在这个网页ex:0.2197 British Pound中刮取0.2197 British Pound的文本值。

代码语言:javascript
复制
<table border=1 cellpadding=5 cellspacing=0 style="font-weight: normal; font-size: 10.5;"><tr><td width=50>1791</td><td>0.2195 British Pound</td></tr><tr><td width=50>1792</td><td>0.2239 British Pound</td></tr><tr><td width=50>1793</td><td>0.2218 British Pound</td></tr><tr><td width=50>1794</td><td>0.2106 British Pound</td></tr><tr><td width=50>1795</td><td>0.2209 British Pound</td></tr><tr><td width=50>1796</td><td>0.2333 British Pound</td></tr><tr><td width=50>1797</td><td>0.2254 British Pound</td></tr><tr><td width=50>1798</td><td>0.2279 British Pound</td></tr><tr><td width=50>1799</td><td>0.2420 British Pound</td></tr><tr><td width=50>1800</td><td>0.2199 British Pound</td></tr><tr><td width=50>1801</td><td>0.2283 British Pound</td></tr><tr><td width=50>1802</td><td>0.2230 British Pound</td></tr><tr><td width=50>1803</td><td>0.2202 British Pound</td></tr><tr><td width=50>1804</td><td>0.2197 British Pound</td></tr><tr><td width=50>1805</td><td>0.2300 British Pound</td></tr>

但是,我正在抓取的网页有几个表,所以我需要一种方法来指定这个特定的表。

这就是我尝试过的:

代码语言:javascript
复制
exchange_rate_table = Nokogiri::HTML(open('http://measuringworth.com/datasets/exchangeglobal/result.php?year_source=1791&year_result=2007&countryE%5B%5D=United+Kingdom'))
        exchange_rate_table.css('td')

但是这会返回所有的td,有些甚至在这个表之外。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-23 23:57:53

在您的解决方案中,您找到了所有<td>元素:

在这里,您打开了整个网页:

代码语言:javascript
复制
exchange_rate_table = Nokogiri::HTML(open('http://measuringworth.com/datasets/exchangeglobal/result.php?year_source=1791&year_result=2007&countryE%5B%5D=United+Kingdom'))

在这里,您在网页中找到了所有的<td>元素(如果这是您想要的话):

代码语言:javascript
复制
exchange_rate_table.css('td')

网页中有两个表,其中一个是您想要排除的。在这个特定的页面中,您只有两个<table>元素。

与其查找所有<td>元素,不如找到一个表,然后找到它的<td>元素。

查找网页:

代码语言:javascript
复制
web_page = Nokogiri::HTML(open('http://measuringworth.com/datasets/exchangeglobal/result.php?year_source=1791&year_result=2007&countryE%5B%5D=United+Kingdom'))

查找第二个表(有汇率的表):

代码语言:javascript
复制
exchange_rate_table = web_page.css('table').last

查找该表中的所有<td>元素:

代码语言:javascript
复制
exchange_rate_cells = exchange_rate_table.css('td')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30418282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档