如何用Nokogiri解析页面



我正在写一个解析器,发现我不能解析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,遵循重定向,并可以遵循链接和提交表单。

相关内容

  • 没有找到相关文章

最新更新