Tag: nokogiri

如何安装Nokogiri Gem for Windows

我对nokogiri的gem有这个问题: 无法打开库’C:\ Ruby187 \ lib \ ruby​​ \ gems \ 1.8 \ gems \ nokogiri-1.4.6-x86-mingw32 \ ext \ nokogiri \ libxml2.dll’:未知 我读到我必须尝试1.5.0.beta3版本。 但是,当我跑 C:\Users\t3en4>gem install nokogiri –pre Fetching: nokogiri-1.5.0.beta.4.gem (100%) ERROR: Error installing nokogiri: The ‘nokogiri’ native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from […]

通过与Savon的SOAP调用,与Nokogiri一起阅读回复

我和萨文打了一个肥皂电话。 这很好,并给出以下响应: string string 现在我想从响应中取出所有字符串元素。 但我无法让它发挥作用。 def query(params=nil) client = Savon::Client.new do wsdl.document = “http://www.kirupafx.com/WebService/TopMovies.asmx?wsdl” end response = client.request :get_top10 if response.success? xml = Nokogiri::XML(response.to_xml) print “Until here oké!” xml.search(‘//GetTop10Result’).each do |result| print “How are you Ruby?” @result[result.at(‘string’).inner_text] = result.at(‘string’).inner_text end else raise “Error!” end 但是他从来没有打印过我漂亮的“你是ruby怎么样?” 有人能帮助我吗? 我做错了什么?

使用Nokogiri和Mechanize获取,访问和限制链接数量?

我正试图从CNN.com上抓下五个最新的故事并检索他们的链接以及每个故事的第一段。 我有这个简单的脚本: url = “http://edition.cnn.com/?refresh=1” agent = Mechanize.new agent.get(“http://edition.cnn.com/?refresh=1”).search(“//div[@id=’cnn_maintt2bul’]/div/div/ul/li[count(*)=3]/a”).each do |headline| article = headline.text link = URI.join(url, headline[:href]).to_s page = headline.click(link) paragraph1 = page.at_css(“.adtag15090+ p”).text puts “#{article}” puts “#{link}” puts “#{paragraph1}” puts “\n” end 此代码无效,因为无法识别click方法。 它会带来这个错误: cnn_scraper.rb:10:in `block in ‘: undefined method `click’ for # (NoMethodError) CNN.com上所有文章的第一段都有选择器.adtag15090+ p 。 还要注意它正在解析所有文章,但我只想要五个。 关于如何使用Nokogiri和Mechanize获得前五个及其第一段的任何想法?

如果只有一个字段为粗体,如何解析一行? Nokogiri和Ruby

所以我有这个代码收集我需要的所有产品信息: # get main page page = agent.get “http://www.site.com.mx/tienda/index.php” search_form = page.forms.first search_result = agent.submit search_form doc = Nokogiri::HTML(search_result.body) rows = doc.css(“table.articulos tr”) i = 0 details = rows.collect do |row| detail = {} [ [:sku, ‘td[3]/text()’], [:desc, ‘td[4]/text()’], [:qty, ‘td[5]/text()’], [:qty2, ‘td[5]/p/b/text()’], [:price, ‘td[6]/text()’] ].collect do |name, xpath| detail[name] = row.at_xpath(xpath).to_s.strip end i = […]

如何获取XML父属性值

我有多个声明,如: 当blah name是某些特定值,如test7我需要相应的房间名称。 我如何实现这一目标?

Nokogiri Scraping错过了HTML

Nokogiri并没有抓住iframe标签下的任何东西。 doc.search(“iframe”)仅返回iframe标记。 doc.search(“body.content-frame”)返回空。 doc.errors也返回空。 Nokogiri为什么不在iframe下注册HTML? 我该怎么抓住它? #document #ETC…….

“语法错误,意外的tIDENTIFIER,期待$ end”

我根据本教程将这个脚本放在一起。 require ‘nokogiri’ require ‘open-uri’ url = “http://sfbay.craigslist.org/sby/jjj/” data = Nokogiri::HTML(open(url)) puts data.at_css(‘.itempn’).text puts data.at_css(‘.itemcg’).text 我一直收到这个错误: Macintosh:nokogiri rgrush$ ruby aaa.rb aaa.rb:1: syntax error, unexpected tIDENTIFIER, expecting $end url = “http://sf… ^ 有任何想法吗? 可能是我的某个依赖项已经过时了吗?

FF Xpather到Nokogiri – 我可以复制和粘贴吗?

我手动这样做,然后我卡住了,我无法弄清楚为什么它不起作用。 我下载了xpather,它给了我:/ html / body / center / table / tbody / tr [3] / td / table作为我想要的项目的路径。 我已经手动确认这是正确的,但是当我将其粘贴到我的代码中时,它所做的只是返回nil 这是我的代码: a = parentdoc.at_xpath(“//html/body/center/table/tbody/tr[3]/td/table[1]”) puts a 如果我做这样的事情: a = parentdoc.at_xpath(“//html/body/center”) puts a 我从页面上获得了大量文本。 我可以继续添加元素,直到我点击tbody然后再次返回nil。 我甚至尝试过类似的东西:// html / body / center / table / * / tr [3]并返回nil做同样的事情 我错过了什么?

如何保存unescaped和nokogiri xml?

如何使用nokogiri保存&在最终的xml文件中? 我的代码是这样的: require ‘rubygems’ require ‘nokogiri’ file_name = “amp.xml” @doc = Nokogiri::XML(”) arg = Nokogiri::XML::Node.new “arg”, @doc arg[‘line’] = “how to save only &???” @doc.root.add_child(arg) File.open(file_name, ‘w’) {|f| f.write(@doc.to_xml) } 而输出就像 UPDATE 看起来我可以使用CDATA,但不知道如何使用它与nokogiri。 我使用@doc = Nokogiri::XML(File.open(file_name))读取xml文件

什么是nokogiri%编码$ character

为什么我得到: Nokogiri::HTML(‘test’).to_html => “\ntest\n” 我以为$符号在url中有效? 跟进: 为什么浏览器会以不同方式处理 例如,在页面中: http : //www.pmlive.com/pharma_news/its_on_shire_and_abbvie_agree_32bn_takeover_586969 链接: http ://www.pmlive.com/pharma_news/mylan_buys_abbotts_non-us_generics_in_ $ 53bn_deal_585883有效。 但是nokogiri会将此链接解析为: http ://www.pmlive.com/pharma_news/mylan_buys_abbotts_non-us_generics_in_%245.3bn_deal_585883这不起作用(返回404)。 他们是否决定$实际上是安全的并且是更好的选择?