gpt4 book ai didi

ruby - 如何让我的 Xpath 查询将其内容循环到新单元格中

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:16 26 4
gpt4 key购买 nike

我正在尝试让我的 Xpath 查询输出到新的单元格行,但我没有成功。我正在尝试将我的输出逐行输出到 A 列,而不是第 1 行的 A、B、C 列

我的完整代码在 https://gist.github.com/3205801

最好使用 Axslx 还是 CSV 标准?

#Set encoding options to remove nasty Trademark symbols
encoding_options = {
:invalid => :replace, # Replace invalid byte sequences
:undef => :replace, # Replace anything not defined in ASCII
:replace => '', # Use a blank for those replacements
:universal_newline => true # Always break lines with \n
}

doc = Nokogiri::HTML(open("http://h10010.www1.hp.com/wwpc/ie/en/ho/WF06b/321957-321957-3329742-89318-89318-5186820-5231694.html?dnr=1"))
#For each break create a ;
doc.css('br').each{ |br| br.replace ';' }

clues = Array.new
clues << 'Operating system'
clues << 'Processors'

CSV.open("output.csv", "wb") do |csv|
#1. Output the Clues header
#2. Scrape the output/force encoding to remove special characters
csv << clues
csv << clues.map{|clue| doc.at("//td[text()='#{clue}']/following-sibling::td").text.strip.encode Encoding.find('ASCII'), encoding_options}
#end loop
end

最佳答案

我不确定我是否理解这个问题,但我认为您需要这样的数据:

header1,value1
header2,value2
header3,value3

而不是:

header1,header2,header3
value1,value2,value3

如果这是真的,你可以这样做:

CSV.open("output.csv", "wb") do |csv|
clues.each do |one_clue|
csv << one_clue
xpath = "//td[text()='#{one_clue}']/following-sibling::td"
csv << doc.at(xpath).text.strip.encode Encoding.find('ASCII'), encoding_options
end
end

关于ruby - 如何让我的 Xpath 查询将其内容循环到新单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com