草庐IT

Nokogiri

全部标签

ruby - 使用 Nokogiri 从 POST 表单中抓取搜索结果

我想从http://maxdelivery.com抓取搜索结果,但不幸的是,他们在搜索表单中使用POST而不是GET。我找到了关于如何使用Nokogiri和RestClient伪造帖子表单提交的描述,但它没有为我返回任何结果:http://ruby.bastardsbook.com/chapters/web-crawling/我之前曾与Nokogiri合作过,但不是为了POST表单提交的结果。现在这是我的代码,仅对上面链接中的示例稍作修改:classMaxDeliverySearchREQUEST_URL="http://www.maxdelivery.com/nkz/exec/Sea

Ruby 解析来自 Nokogiri::XML::NodeSet 的 <a> 链接信息

我拉了一个Nokogiri::XML::NodeSet来自页面,结果如下:我无法弄清楚如何转换它(对人类来说很明显)标记到Mechanize/Nokogiri解析的对象中,这样我就可以轻松地从链接中检索一些信息。Nokogiri/Mechanize文档真的很困惑,因为我不知道该看哪一个。不确定哪个先出现,哪个使用哪个等等。对于我尝试做的简单抓取和解析来说,这似乎过于复杂。 最佳答案 NodeSet就像一个数组。如果您在NodeSet上使用puts(),那么就像您在Array上使用puts一样,ruby将在单独的行上输出NodeSet

html - Nokogiri 获取所有 HTML 节点

我想使用Nokogiri从HTML文档中获取所有节点。示例HTML输入字符串:TesttestJojo预期输出:['','','','','','','','','','']结束标签和正确的顺序很重要!我已经试过这段代码了:require'nokogiri'string_page="Header1"doc=Nokogiri::HTML(string_page)doc.search('*').map(&:name)#=>["html","body","h1"]但它不返回结束标记。 最佳答案 您可以将OuterXml拆分为所有非自关闭的

ruby-on-rails - nokogiri 和 xpath -- 数据集的嵌套循环

我试图遍历每个元素中的元素,但下面的内部循环有问题。在我看来,xpath模式“*/td”没有返回任何结果。我期待看到打印到标准输出的标签内的数据。我正在使用nokogiri。我将其粘贴到我的Rails控制台中:require'nokogiri'f=File.open("public/index.html")doc=Nokogiri::HTML(f)f.closedoc.xpath('//*[@id="WhoIsOnDutyTableLevel4"]/tbody/tr').eachdo|row|puts"row="+row.to_srow.xpath('*/td').eachdo|td|

css - 如何使用 Nokogiri 选择带冒号的 ID?

有人认为在他们所有的ID名称中使用冒号会很棒,所以现在我无法尝试选择这些ID名称。我正在使用Nokogiri,我需要选择ID为tapListResultForm:resDetail_pg_3的元素.如:Example我已经试过了:doc=Nokogiri.HTML(html)doc.css('#tapListResultForm:resDetail_pg_3')但这会抛出一个运行时错误:RuntimeError:xmlXPathCompOpEval:functionresDetail_pg_3notfound 最佳答案 试试这个:d

ruby - 使用 Nokogiri 定位没有标签的文本

我尝试使用Nokogiri(在Ruby上)解析一些非常简单的HTML:Address123MainStreetSometownTelephone212-555-555HoursM-F:8:00-21:00Sat-Sun:8:00-21:00我唯一的标签是周围的对于页面内容。我想要的每一件事都以Address开头类型标签。它后面可以跟另一个span或hr在最后。我想以地址(“123MainStreet\nSometown”)、电话号码(“212-555-555”)和营业时间作为单独的字段结束。有没有一种方法可以使用Nokogiri获取信息,或者使用正则表达式更容易做到这一点?

ruby-on-rails - 我可以删除 rvm gemset 中的一些 nokogiri 和 capybara-webkit 文件夹吗?

我正在使用磁盘分析器,我注意到在我的.rvm文件夹中有两个gem,nokogiri和capybara-webkit,比通常:检查它们的内部,我发现对于nokogiri有一个临时文件夹,对于capybara-webkit有一个源文件夹。我的问题是:删除这些文件夹是否安全?(是的,我是一个贪婪的磁盘空间保护者)以及为什么nokogiri正在创建该临时文件夹?因为我有另一个gemset(带有较低版本的ruby​​和nokogiri)并且没有创建该文件夹。 最佳答案 是的,您可以删除tmp目录。如果您没有足够新的libxml2或libxsl

ruby - 如何避免 Nokogiri 编码 href 内容?

我有这个代码:n=Nokogiri::HTML::DocumentFragment.parse("click")当我执行n.to_html时,我得到了{{}}转义:"click"我想避免这种情况,因为我需要用模板引擎解析它。我如何告诉Nokogiri不要对“href”内容进行编码? 最佳答案 我认为不可能告诉Nokogiri不在HTML参数内对文本值进行编码。它是一个遵循规则的解析器,但这并不意味着我们必须接受它的输出:require'nokogiri'REGEX_HASH={'%7B'=>'{','%7D'=>'}'}REGEX=

ruby-on-rails - 捆绑安装特定的 nokogiri -v '1.6.1' 问题

我不小心删除了一些库(我想,不要问如何)。现在我无法安装我需要的nokogiri版本。我已经阅读了其他有类似问题的帖子,但他们的解决方案没有帮助。请查看以下错误:(Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension.currentdirectory:/private/var/folders/_w/_81xdz4n1x5_9kd3xxtqlv3w0000gn/T/bundler20161219-83285-1fnegt2nokogiri-1.6.1/gems/nokogiri-1.6.1/ext/nokogiri/Syst

ruby - Nokogiri 和随机 div 名称

使用Nokogiri和Ruby。我有一个页面要用divid解析,例如:divid="some-list-number^875"...-number^之后的数字随机变化,我做不到doc.css('#wikid-list-genres^875').eachdo|n|putsn.text.to_send但是基本结构总是相同的-number^..somedigits...所以我需要一些用于这些数字的通配符。我如何使用ruby​​和Nokogiri来处理这个问题?谢谢! 最佳答案 您可以使用^=来匹配属性的开头,例如div[id^=wikid