【发布时间】:2012-11-27 04:41:21
【问题描述】:
我正在使用 open-uri 和 nokogiri 和 ruby 来做一些简单的网络爬虫。
存在一个问题,有时 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
【问题讨论】:
-
example.com source 没有任何
标签。
-
这只是我的问题的占位符。很抱歉误导。
-
定义“完全加载”,图片、外部脚本、ajax内容等呢?
-
您确定您认为正在发生的事情就是正在发生的事情吗?即,您是否检查过 curl 或类似内容?我没有看到你描述的行为。
-
这表明内容正在通过 AJAX 或其他一些 JS 方法加载,并且原始 HTML 源(所有 curl/nokogiri 都可以看到)不包含您想要的内容。在这种情况下,您需要选择另一个支持 JS/ajax 的爬虫。