我刚开始学习抓取,并得到错误“意外”。在'#'之后。使用pry,当我放入导致此问题的行时(即page.css(“div [@ class ='wrapper'] / div / div // ul [17] / li [4]”)。text()) , 有用。
我试图用page.xpath(“...”)替换page.css(“...”),但它不会返回任何内容。
require "nokogiri"
require "open-uri"
require "pry"
page = Nokogiri::HTML(open("https://www.website_i_want_datas_from.com"))
myscrapp_2 = []
for k in (1..500) do
((page.css("div[@class='wrapper']/div/div//ul[k]/li[4]").text() =~ /@/) != nil ? myscrapp_2 << page.css("div[@class='wrapper']/div/div//ul[k]/li[4]").text()
: myscrapp_2 << page.css("div[@class='wrapper']/div/div//ul[k]/li[5]").text())
binding.pry
end
我宁愿使用这种语法来废弃元素:
scrap = []
page.xpath('your/xpath').each do |node|
scrap.push(node.text)
end