ruby – 使用open-uri和nokogiri在完全加载之前读取HTML
发布时间:2020-12-16 23:29:18 所属栏目:百科 来源:网络整理
导读:我正在使用open-uri和nokogiri和 ruby来做一些简单的webcraw. 有一个问题,有时html在完全加载之前被读取.在这种情况下,我无法获取加载图标和导航栏以外的任何内容. 告诉open-uri或nokogiri等到页面完全加载的最佳方法是什么? 目前我的脚本看起来像: requir
我正在使用open-uri和nokogiri和
ruby来做一些简单的webcraw.
有一个问题,有时html在完全加载之前被读取.在这种情况下,我无法获取加载图标和导航栏以外的任何内容. 告诉open-uri或nokogiri等到页面完全加载的最佳方法是什么? 目前我的脚本看起来像: require 'nokogiri' require 'open-uri' url = "https://www.the-page-i-wanna-crawl.com" doc = Nokogiri::HTML(open(url,ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE)) puts doc.at_css("h2").text 解决方法
你所描述的是不可能的. open的结果只会在open方法之后传递给HTML,因为返回了完整的值.
我怀疑页面本身使用AJAX加载其内容,如评论中所建议的那样,在这种情况下,您可以使用Watir使用浏览器获取页面 require 'nokogiri' require 'watir' browser = Watir::Browser.new browser.goto 'https://www.the-page-i-wanna-crawl.com' doc = Nokogiri::HTML.parse(browser.html) 这可能会打开浏览器窗口. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |