Содержимое Xpath не сохранено
Это может быть просто идиотская ошибка в коде, которую я еще не обнаружил, но это заняло у меня довольно много времени: при синтаксическом анализе сайтов с использованием nokogiri и xpath и попытке сохранить содержимое xpaths в файл.csv, CSV-файл имеет пустые ячейки.
По сути, содержимое xpath возвращает пустое ИЛИ мой код неправильно читает веб-сайты.
Это то, что я делаю:
require 'open-uri'
require 'nokogiri'
require 'csv'
CSV.open("neverend.csv", "w") do |csv|
csv << ["kuk","date","name"]
#first, open the urls from a document. The urls are correct.
File.foreach("neverendurls.txt") do |line|
#second, the loop for each url
searchablefile = Nokogiri::HTML(open(line))
#third, the xpaths. These work when I try them on the website.
kuk = searchablefile.at_xpath("(//tbody/tr/td[contains(@style,'60px')])[1]")
date = searchablefile.at_xpath("(//tbody/tr/td[contains(@style,'60px')])[1]/following-sibling::*[1]")
name = searchablefile.at_xpath("(//tbody/tr/td[contains(@style, '60px')])[1]/following-sibling::*[2]")
#fourth, saving the xpaths
csv << [kuk,date,name]
end
end
что мне здесь не хватает?
1 ответ
Решение
Из того, что вы написали, невозможно судить, но давайте исправим этот горячий беспорядок с помощью css:
kuk = searchablefile.at 'td[style*=60px]'
date = searchablefile.at 'td[style*=60px] + *'
name = searchablefile.at 'td[style*=60px] + * + *'