如何修剪输入数组的xpath查询的输出



我正在http://h10010.www1.hp.com/wwpc/ie/en/ho/WF06b/321957-321957-3329742-89318-89318-5186820-5231694.html?dnr=1

此的完整代码位于https://gist.github.com/3156035

该网页使用了没有CSS的老式html表,所以我使用xpath来查找某些关键字(线索),然后将下一个元素作为目标。关键字然后进入下面的循环

clues.each do |clue|
  #putting the output into quotes, incase the content contains a comma!
  csv_text << ""#{doc.at_xpath("//td[text()='#{clue}']/following-sibling::td").text.strip}""
  csv_text << ", " unless clues.last == clue
end

由于数组使用,分隔值,我可以将每个值添加到csv中自己的单元格中,这很好,但单元格保修显示为"1年,取货和退货,零件和劳动力"

代码将其切碎并放入3个单元格:"1年",然后"提货和退货",然后是"零件和劳动力"

我想要的是让它保持为一个单独的细胞:"1年,提货和退货,零件和劳动力"

如何将代码更改为而不是匹配单元格中的逗号?

令人困惑的是,当你真的在问如何创建一个合适的CSV时,你却把这当成了一个Nokogiri问题。

我建议使用CSV库:

CSV.open("path/to/output.csv", "wb") do |csv|
  #loop here over all your pages to scrape
    csv << clues.map{|clue| doc.at("//td[text()='#{clue}']/following-sibling::td").text.strip}
  #end loop
end

这将自动创建有效的CSV,其中任何逗号都包含正确引用的条目。

相关内容

  • 没有找到相关文章

最新更新