2016-10-01 65 views
-1

我在寫一個解析器。 我發現我無法分析這個特定頁面 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 

但如果我使用byebug在我的rails控制檯打印@result我只得到這樣的:

<!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\"}">]>]>]>]> 

更新2我做了一些搜索,並在我解析的網站上找到這個頁面 http://irr.ru/ajax/2012/common/action/passport_answer.php?message=login_fail&redirect=/&er=2 它還有一條消息not_used_cookie

+0

爲什麼使用反引號?該代碼會引發異常。 – matt

+0

@matt我實際上使用雙反引號'「」'(不知道他們是如何用英語稱呼的)。考慮這是一個誤印。 – user2950593

+0

歡迎來到堆棧溢出。請閱讀「[問]」,包括鏈接的頁面和「[mcve]」。我們需要查看在問題本身中重現問題所需的最小HTML。鏈接腐爛然後中斷,當他們做你的問題將沒有任何人在未來看它的意義。我們還需要能夠運行剝離的代碼來複制問題。 –

回答

0

考慮使用mechanize而不是Open-uri。

該網站希望設置cookie。

page = open(link) 
page.read 
=> "{\"message\":\"not_used_cookie\"}" 

機械化自動存儲和發送餅乾,遵循重定向,並可以跟隨鏈接和提交表單。