Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 获取属性化html元素_Ruby_Css Selectors_Nokogiri - Fatal编程技术网

Ruby 获取属性化html元素

Ruby 获取属性化html元素,ruby,css-selectors,nokogiri,Ruby,Css Selectors,Nokogiri,我试图从中获取包含MMEL代码内容的表,并尝试使用CSS选择器来完成它 到目前为止,我得到的是: require_relative 'sources/Downloader' require 'nokogiri' html_content = Downloader.download_page('http://www.s-techent.com/ATA100.htm') parsed_html = Nokogiri::HTML(html_content) tmp = parsed_html.cs

我试图从中获取包含MMEL代码内容的表,并尝试使用CSS选择器来完成它

到目前为止,我得到的是:

require_relative 'sources/Downloader'
require 'nokogiri'

html_content = Downloader.download_page('http://www.s-techent.com/ATA100.htm')
parsed_html = Nokogiri::HTML(html_content)

tmp = parsed_html.css("tr[*]")

puts tmp.text
我在尝试获取带有属性的
tr
时出错。我如何才能完成此任务以简单的形式获取此表,因为我想将其解析为JSON。最好把它分成几个部分,然后调用
。每个


编辑: 如果我能在块中得到像这样的东西,我会是nic(查看页面源代码)


11

标语和标记

所有可购买的标牌、标签等应包含在图解零件目录中。应进行图解,显示零件号、图例和位置。维护手册应提供安全信息、维护重要信息或政府法规所需的大致位置(即FWD-上部-右侧),并说明每个标牌、标签、标记、自发光标志等。政府法规要求的应予以识别。


这应该在第96行打印源中的所有TR。该页面中有三个表,
表[1]
包含您所需的所有文本:

require 'nokogiri'

doc = Nokogiri::HTML(open('http://www.s-techent.com/ATA100.htm'))
doc.css("table")[1].css("tr").each do |i|
  puts i #=> prints the exact html between TR tags (including)
  puts i.text #=> prints the text
end
例如:

puts doc.css("table")[1].css("tr")[2] 
打印以下内容:

<tr>
<td valign="TOP" colspan="3">
<b><font face="Arial" size="2"><p align="CENTER">GROUP DEFINITION - AIRCRAFT</p></font></b>
</td>
<td valign="TOP">
<font face="Arial" size="2"><p align="LEFT">The complete operational unit.  Includes dimensions and
areas, lifting and shoring,    leveling and weighing, towing and taxiing, parking and mooring, requi
red placards, servicing.</p></font>
</td>
</tr>

集团定义-飞机

完整的操作单元。包括尺寸和尺寸 区域、起重和支撑、调平和称重、牵引和滑行、停车和系泊,要求 红色标语牌,服务


您也可以使用
xpath
执行同样的操作:

以下是OP在文章中给出的网页第一个表格的内容:

需要“nokogiri”
需要“打开uri”
doc=Nokogiri.HTML(打开)http://www.s-techent.com/ATA100.htm'))
doc.xpath('(//表)[1]/tr')。每个都做| tr|
将tr.to_html(:encoding=>'utf-8')
结束
输出:


飞机零件制造协助(PMA)
DAR服务

现在,如果要收集最后一个表行,请执行以下操作:

需要“nokogiri”
需要“打开uri”
doc=Nokogiri.HTML(打开)http://www.s-techent.com/ATA100.htm'))
p doc.xpath('(//表)[3]/tr')。到_a.size#=>1
doc.xpath('(//表)[3]/tr')。每个都做| tr|
将tr.to_html(:encoding=>'utf-8')
结束
输出:


宾夕法尼亚州利默里克市杜鹃园149号,邮编19468-1330

610-495-6898(办公室)•484-680-0507(单元)


您想要完整的表格信息吗?我已经输入了“编辑我想要的:”)您想要表格html吗?或者有什么具体的内容?我还是不明白你的需要。:)表格HTML就足够了:)所以所有的
TR
都是您想要的,对吗?:)最后确认。这就是我要找的:D我对这一切都不熟悉,忘了检查这一页中有多少张桌子…@Cojoj你说过要从第96行开始……)所以你只想要第一张桌子?我只想要这张桌子,我希望能帮你告诉你我想要的是从96开始:P@Cojoj这就是我迟到回答的原因!:)我还是会发我的。不用担心,我快做完了!哈,你还可以帮我从每个
TR
:P创建JSON
<tr>
<td valign="TOP" colspan="3">
<b><font face="Arial" size="2"><p align="CENTER">GROUP DEFINITION - AIRCRAFT</p></font></b>
</td>
<td valign="TOP">
<font face="Arial" size="2"><p align="LEFT">The complete operational unit.  Includes dimensions and
areas, lifting and shoring,    leveling and weighing, towing and taxiing, parking and mooring, requi
red placards, servicing.</p></font>
</td>
</tr>