Scraping Coursera的结果是404

时间:2016-02-18 18:41:51

标签: ruby web-scraping phantomjs capybara poltergeist

为什么以下结果会产生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

2 个答案:

答案 0 :(得分:1)

在页面保存到文件然后在浏览器中打开之前,您没有获得404,并且,正如猜测,是由某些JS从错误的引荐来源加载或由于未加载而被驱动推荐人。

你可以通过在测试的底部添加assert_text("Take the world's best courses, online.")来看到这一点 - 这很好,因为poltergeist正在使用普通的coursera.org页面

答案 1 :(得分:0)

如果你没有合适的推荐数据,我想知道是否实施了重定向。当我运行你的代码时,我会在被带到404之前简要地看到网站加载。

如果我访问了一个糟糕的网址,我根本不会得到一个404页面,而是一条消息说“#34;抱歉,找不到您正在寻找的课程。”请检查您的网址,然后重试。"

https://www.coursera.org/badurl