我希望将内容从构造不佳的源站点写入 csv 行。我的 csv 行很简单:
COMPANY_NAME,WEBSITE,EMAIL,TEL1,TEL2,FAX,STREET,CITY,STATE,ZIP,COUNTRY
不幸的是,源没有干净的 ID 和类可供搜索。在一堆“对我来说没用”的元素之间,是我需要的所有东西都捆绑在一个<p>
元素中,如下所示:
<h2 class="lead">Contact Details</h2>
<br>
<p><!--what I want is in here -->
<strong>COMPANY_NAME/strong> <br>
STREET<br>
CITY, STATE ZIP<br>
COUNTRY<br>
Tel: +1 555 555 5555<br>
Tel: +1 555 555 5555<br>
Fax: +1 555 555 5555<br>
Email: <a href="mailto:EMAIL_ADDRESS</a><br>
URL: <a target="_blank" rel="nofollow" href="http://www.COMPANY_WEB_ADDRESS.com">
www.COMPANY_WEB_ADDRESS.com</a><br>
</p>
所以,我当前的代码(我相信你会大笑的)是这样的:
page = Nokogiri::HTML(open('http://www.SOURCE/'))
page.css('h2.lead')[0].next_element.next_element
这条丑陋的线找到了第一次出现的具有类领先的页面 h2 元素。我必须明确使用 [0] 来应用方法?我是否错误地捕获了元素?然后我<p>
在选择后使用两个“next_element”调用来抓取元素两个元素。我畏缩写这个,但在我选择之后我似乎无法穿越第 n 级!最后,<p>
我想要的元素和它的所有内容都被捕获了!YAY 迷你胜利!
输出非常难看(更不用说我的一个班轮非常难看),我不确定将<p>
内容“分解”成可以输出到 csv 的数组的最佳方法。
我很想按原样将其写入文件并使用 linux 终端将其全部清理...那将是作弊和退出!
任何方向将不胜感激。