我在用着open-uri
and nokogiri
使用 ruby 进行一些简单的网络爬行。
有一个问题,有时 html 在完全加载之前就被读取了。在这种情况下,我无法获取除加载图标和导航栏之外的任何内容。
最好的告知方式是什么open-uri
or 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
只会传递给HTML
之后open
方法返回完整值。
我怀疑页面本身使用 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)
但这可能会打开一个浏览器窗口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)