为什么以下结果会产生404?
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'
class CourseraScraper
include Capybara::DSL
def initialize
Capybara.default_driver = :poltergeist
Capybara.run_server = false
Capybara.app_host = "https://www.coursera.org/"
visit '/'
save_and_open_page
end
end
CourseraScraper.new
答案 0 :(得分:1)
在页面保存到文件然后在浏览器中打开之前,您没有获得404,并且,正如猜测,是由某些JS从错误的引荐来源加载或由于未加载而被驱动推荐人。
你可以通过在测试的底部添加assert_text("Take the world's best courses, online.")
来看到这一点 - 这很好,因为poltergeist正在使用普通的coursera.org页面
答案 1 :(得分:0)
如果你没有合适的推荐数据,我想知道是否实施了重定向。当我运行你的代码时,我会在被带到404之前简要地看到网站加载。
如果我访问了一个糟糕的网址,我根本不会得到一个404页面,而是一条消息说“#34;抱歉,找不到您正在寻找的课程。”请检查您的网址,然后重试。"