Ruby是一个多平台的开源,动态的面向对象的解释语言,由Yukihiro Matsumoto(Matz)于1995年创建。[ruby]标签用于与Ruby语言相关的问题,包括其语法和库。 Ruby on Rails问题应该用[ruby-on-rails]标记。
有没有一种方法可以查看Ruby中类实例分配的内存大小? 我已经构建了一个自定义类,我想知道它在内存中的对象的大小。那么有没有一个函数...
如何在FactoryBot中生成混合字母字符和数字的序列值?
我需要生成类似于“ABC1”和“XYZ9”的标签序列——始终是三个字母后跟一个数字。我希望标签的两个部分都逻辑上递增...
我正在尝试编写一个允许任何字符串但不允许nil的活动记录验证。 validates_presences_of 的问题是它为“”或“”返回 false,我想考虑......
在我的场景中,我正在抓取一个内容由 javascript 生成的网站。我知道 watir 非常适合我的情况,但众所周知,它往往会增加一点开销并使程序......
使用 Nokogiri 和 Ruby 抓取 iframe 数据 [已关闭]
这是我编写的脚本,用于使用 Nokogiri 抓取 标签内的数据: 需要“nokogiri” 需要“休息客户端” doc = Nokogiri::HTML(RestClient.get("http://www.sample_site.com/")) ...</desc> <question vote="0"> <div> </div> <p>这是我编写的脚本,用于使用 Nokogiri 抓取 <pre><code><iframe></code></pre> 标签内的数据:</p> <pre><code>require 'nokogiri' require 'restclient' doc = Nokogiri::HTML(RestClient.get("http://www.sample_site.com/")) doc.xpath('//iframe[@width="1001" and @height="973"]').children </code></pre> <p>我现在变成这样了:</p> <pre><code>=> [#<Nokogiri::XML::Text:0x1913970 "\r\nYour browser does not support inline frames\r\n">] </code></pre> <p>谁能告诉我为什么?</p> </question> <answer tick="false" vote="2"> <p><strong><pre><code>iframe</code></pre> 用于在当前 HTML 文档中嵌入另一个文档</strong>。这意味着 iframe 从 <pre><code>src</code></pre> 属性中指定的外部源加载其内容。</p> <p>因此,如果您想抓取<pre><code>iframe</code></pre>内容,您应该向外部源发送请求,从外部源加载其内容。</p> <pre><code># The iframe (notice the 'src' attribute) <iframe src="iframe_source_url" height="973" width="1001"> # iframe content </iframe> # Code to do the scraping doc = RestClient.get('iframe_source_url') parsed_doc = Nokogiri::HTML(doc) parsed_doc.css('#yourSelectorHere') # or parsed_doc.xpath('...') </code></pre> <p><strong>注意(关于错误)</strong></p> <p>当您进行抓取时,您使用的 HTTP 客户端将充当您的浏览器(您的是 <pre><code>restclient</code></pre>)。该错误表明您的浏览器不支持内联框架,换句话说,<pre><code>restclient</code></pre>不支持内联框架,这就是它无法加载框架内容的原因。</p> </answer> <answer tick="false" vote="0"> <p>这个问题应该向<pre><code>RestClient</code></pre>提出,而不是向<pre><code>Nokogiri</code></pre>提出。</p> <p><pre><code>RestClient</code></pre> 不检索 <pre><code>iframe</code></pre> 的内容。你可能想尝试检查 <pre><code>RestClient.get("http://www.sample_site.com/")</code></pre> 的内容,会有这样的字符串:</p> <pre><code><iframe src="page-1.htm" name="test" height="120" width="600"> You need a Frames Capable browser to view this content. </iframe> </code></pre> <p><pre><code>Nokogiri</code></pre> 可以很好地处理这个问题,它返回 <pre><code>iframe</code></pre> 节点的内容,这显然是唯一一个具有您生成的字符串的 <pre><code>TextNode</code></pre>。</p> </answer> </body></html>
我正在尝试抓取网站中的图像,并将它们下载到本地文件夹。 我使用的是 scrapifier gem,它看起来很简单。 我已经安装了它,制作了 scrape.rb 并从终端 ruby s 运行它......
这是一个代码示例: 类 Foo def self.create_method def 示例_方法 “富” 结尾 结尾 私人的 创建方法 结尾 Foo.public_instance_methods(false) # => [:example_met...
如何使用 Nokogiri 解析 Wikipedia 中的深度嵌套文本?
我正在尝试从 http://en.wikipedia.org/wiki/List_of_current_NBA_team_rosters 获取所有球员姓名的列表 这是我的新手代码: AllPlayersScraper 类 attr_accessor:
使用 Ocra 编译脚本时,Ruby 中出现“libgmp-10.dll”问题
我在尝试使用 Ruby 中的 ocra 创建可执行文件时遇到问题,无论如何我都无法修复它,甚至 chatGPT 也无法提供帮助。 问题出在 libgmp-10.dll 上。编译器工作了
如何使用 Ruby 抓取由 Javascript 函数生成的数据?
我正在尝试从此页面中抓取最新日期(即表格的第一行)的数据 URL 链接。表格的内容似乎是由 JavaScript 函数生成的。 我...
运行时错误::json 未在 Faraday::Request 上注册
我对 ruby 相当陌生,我正在尝试执行规范,但收到此错误: 运行时错误: :json 未在 Faraday::Request 上注册 我正在尝试使用这个 gem:https://gi...
我正在使用 RubyMine 6.3,但是我在调试器方面遇到了一些问题 C:\Ruby200 中 uby.exe -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) C:/Ruby200/lib/ruby/gems/2.0.0/gems/ruby-deb...
如何获取不带扩展名的文件名?例如,输入“/dir1/dir2/test.html.erb”应返回“test”。 在实际代码中,我将传递 __FILE__ 而不是 &q...
Ruby on Rails 中的 Linkedin Oauth 并不是每隔几次就登录一次
我一直在开发一个使用新的 Linkedin OpenID 登录功能的应用程序。问题是它确实有效,但大多数时候它都有效。每隔几次,(3-10,相当随机)它不会让你登录...
我已经习惯了能够缩短 some_array.map { |e| e.to_s } 到 some_array.map(&:to_s) 有没有办法缩短 some_array_of_arrays.map { |e| e[4] } 如同 数组中的一些数组......
我正在用这个。 doc = Nokogiri::HTML(打开(url)) pic = doc.search "[text()*='hiRes']" 获取此脚本节点: 变量数据 = { 'colorImages':{ '初始': [{“...</desc> <question vote="0"> <p>我正在用这个。</p> <pre><code>doc = Nokogiri::HTML(open(url)) pic = doc.search "[text()*='hiRes']" </code></pre> <p>获取此脚本节点:</p> <pre><code><script type="text/javascript"> var data = { 'colorImages': { 'initial': [{"hiRes":"http://ecx.images-joes.com/images /I/71MBTEP1W9L._UL1500_.jpg","thumb":"http://ecx.images-joes.com/images /I/41xE2XADIvL._US40_.jpg","large":"http://ecx.images-joes.com/images /I/41xE2XADIvL.jpg","main":{"http://ecx.images-joes.com/images /I/71MBTEP1W9L._UX395_.jpg":[395,260],"http://ecx.images-joes.com/images /I/71MBTEP1W9L._UX500_.jpg":[500,329],"http://ecx.images-joes.com/images /I/71MBTEP1W9L._UX535_.jpg":[535,352],"http://ecx.images-joes.com/images /I/71MBTEP1W9L._UX575_.jpg":[575,379]} </code></pre> <p>节点从那里继续前进..</p> <p>但我唯一需要提取的是包含该字符串的整个 URL。 “UL1500”或“hiRes:”后面的 URL.. 例如。 <a href="http://ecx.images-joes.com/images/I/71MBTEP1W9L._UL1500_.jpg" rel="nofollow">http://ecx.images-joes.com/images/I/71MBTEP1W9L.<em>UL1500</em>.jpg</a></p> <p>我查找了 Nokogiri 返回的类,它是 Nokogiri::XML::NodeSet</p> <p>但我不确定如何与其交互以获得我需要的东西?</p> <p>谢谢</p> </question> <answer tick="true" vote="0"> <p>我从只使用 Nokogiri 转向正则表达式..但最终找到了这个,它就像魔术一样!!</p> <p><a href="https://stackoverflow.com/a/5939906/4386626">https://stackoverflow.com/a/5939906/4386626</a></p> </answer> <answer tick="false" vote="0"> <p>是的。由于一般情况,它是一个 NodeSet。 </p> <p>参见:<a href="http://www.rubydoc.info/github/sparklemotion/nokogiri/master/Nokogiri/XML/NodeSet#children-instance_method" rel="nofollow">http://www.rubydoc.info/github/sparklemotion/nokogiri/master/Nokogiri/XML/NodeSet#children-instance_method</a></p> <p>在这种情况下你可以尝试:</p> <pre><code>pic.children.first.content </code></pre> </answer> </body></html>
在我的 M3 Macbook 上安装 Jekyll 无法“坚持”
我想我已经把自己逼到了一个角落,试图覆盖默认的 Ruby 安装,以便我可以安装 Jekyll。 这是一个粗略的时间表: 我严格按照本教程进行操作,它确实有效,我...
我可以在 RSpec 中写一个期望,要求使用特定参数仅调用一次方法吗?
我刚刚完成第一年在 Rails 中编写生产代码的工作,我并没有真正被困在这里,但是我所经历的非 ruby 性很奇怪,我想看看是否有人遇到这个问题...
所以,对于我正在开发的一款游戏,假设我在咒语的评论框中添加了一些文本: 通过使用切片功能,我...