2016-02-18 2 views
0

Зачем нужен следующий результат в 404?Скребок Coursera приводит к 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 

ответ

1

Вы не получаете 404, пока страница не будет сохранена в файл, а затем открыл в своем браузере и, как предположение, гонят некоторыми JS загружается из неправильного реферер или нет загружается из-за реферера.

Вы можете увидеть это, добавив assert_text("Take the world's best courses, online.") в нижней части теста - который проходит просто отлично, потому что полтергейст работает с нормальной Coursera.org страницы

+0

Вот что было. Теперь используйте page.save_screenshot вместо ... – Kalman

0

Интересно, существует ли переадресация, если у вас нет правильных реферальных данных. Когда я запускаю ваш код, я кратко вижу загрузку сайта до того, как его отправят в 404.

Если вместо этого я нахожусь на плохом URL-адресе, у меня нет страницы 404, но вместо этого появляется сообщение «Извините, класс, который вы искали, не найден. Проверьте свой URL и повторите попытку ».

https://www.coursera.org/badurl

+0

интересное наблюдение ... как я могу заставить его работать, хотя? – Kalman

Смежные вопросы