我正在写一个解析器,发现我不能解析http://ekaterinburg.irr.ru/equipment/trade/showcase/.
我有代码:
link = "http://ekaterinburg.irr.ru/equipment/trade/showcase/"
page = open(link, :allow_redirections => :all)
page = Nokogiri::HTML page
@result = page.to_html
但是如果我在我的Rails控制台使用Byebug打印@result
,我只得到这个:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">nn
如果我尝试page.css('title')
,它也不会找到任何东西。
此代码在其他页面上运行良好。
如果是相关的,我也用
gem 'addressable'
gem 'open_uri_redirections'
当我写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"}">]>]>]>]>
我做了更多的搜索,在我解析的网站上找到了这个页面:
http://irr.ru/ajax/2012/common/action/passport_answer.php?message=login_fail&重定向=/,呃= 2
它也有一个消息not_used_cookie
考虑使用Mechanize代替OpenURI。
网站希望设置cookie:
page = open(link)
page.read
=> "{"message":"not_used_cookie"}"
机械化自动存储和发送cookie,遵循重定向,并可以遵循链接和提交表单。