【发布时间】:2013-02-10 21:42:26
【问题描述】:
我正在使用 Ruby 和 Nokogiri 抓取一个网站。
此脚本创建一个本地文本文件,打开一个 URL,如果满足表达式 tr td,则写入该文件。它工作正常。
require 'rubygems'
require 'nokogiri'
require 'open-uri'
DOC_URL_FILE = "doc.csv"
url = "http://www.SuperSecretWebSite.com"
data = Nokogiri::HTML(open(url))
all_data = data.xpath('//tr/td').text
File.open(DOC_URL_FILE, 'w'){|file| file.write all_data}
每行有五个字段,我想水平运行,然后在填充五个单元格后转到下一行。数据都在那里,但不可用。
我希望从知道如何创建 CSV 格式代码的人那里学习或获取代码:
- 在脚本读取代码时,将每个新的 td /td x5 水平转储到自己的单元格中。
- 转到下一行,等等。
HTML 的布局是:
<tr>
<td>John Smith</td>
<td>I live here 123</td>
<td>phone ###</td>
<td>Birthday</td>
<td>Other Data</td>
</tr>
最终产品应该是什么样子。
http://picpaste.com/pics/Screenshot-KRnqRGrP.1361813552.png
电流输出
john Smith I live here 123 phone ### Birthday Other Data,
【问题讨论】:
-
“不可用”是什么意思?你能分享一下你当前的输出是什么样的吗?此外,将您的目标显示为文本文件会有所帮助(它在 Excel 中的外观并没有多大帮助)。此外,如果该网站不是您的网站,请注意此类工作,根据您的法律,可能会被禁止(至少用于商业用途)。
-
本网站提供的信息对公众开放。这五个字段是任意的,与我放下的内容没有任何关系。例如,我使用数字/文本的字段的用途和动态。