Я пишу парсер. я обнаружил, что я не могу разобрать эту конкретную страницу http://ekaterinburg.irr.ru/equipment/trade/showcase/Не удается разобрать страницу с nokogiri
У меня есть код
link = "http://ekaterinburg.irr.ru/equipment/trade/showcase/"
page = open(link, :allow_redirections => :all)
page = Nokogiri::HTML page
@result = page.to_html
Но если я печатаю @result
в моей рельсах консоли с помощью byebug я получаю только это:
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n\n
Если я попробую что-то вроде page.css('title')
- он ничего не найдет.
Этот код отлично подходит для других страниц.
Если уместно, я также использую
gem 'addressable'
gem 'open_uri_redirections'
UPDATE Некоторые более полезная информация: Когда я пишу Nokogiri::HTML page
я получаю что-то о not_used_cookie
сообщение:
(byebug) Nokogiri::HTML page
#<Nokogiri::HTML::Document:0x..fd980c3da name="document" children=[#<Nokogiri::XML::DTD:0x..fd980c20e name="html">, #<Nokogiri::XML::Element:0x..fda73e682 name="html" children=[#<Nokogiri::XML::Element:0x..fda73e4d4 name="body" children=[#<Nokogiri::XML::Element:0x..fda73e33a name="p" children=[#<Nokogiri::XML::Text:0x..fda73e10a "{\"message\":\"not_used_cookie\"}">]>]>]>]>
UPDATE 2 Я сделал поиск и нашел эту страницу на сайте, где я разбираю http://irr.ru/ajax/2012/common/action/passport_answer.php?message=login_fail&redirect=/&er=2 У него также есть сообщение not_used_cookie
Почему вы используете backticks? Этот код вызовет исключение. – matt
@matt Я фактически использую двойные обратные ключи '' '' (не знаю, как они вызывается на английском языке). Рассмотрите это как опечатку. – user2950593
Добро пожаловать в переполнение стека. Пожалуйста, прочитайте «[ask]», включая связанные страницы, и «[mcve]». Нам нужно увидеть минимальный HTML, необходимый для дублирования проблемы в вашем самом вопросе. Ссылки rot затем ломаются, и когда они делают ваш вопрос, не будет иметь смысла никому, кто смотрит на него в будущем. Мы также должны иметь возможность запускать разделенный код, чтобы дублировать проблему. –