使用Nokogiri解析HTML并非所有标记都存在

时间:2015-05-07 13:49:09

标签: ruby parsing nokogiri

有这个词典:Russian dictionary

在ruby中我想获取下一页的网址 - “>>”

<a href="m.exe?a=110&sc=4&recno=3506774&dict=&l1=1&l2=2">>></a>

在浏览器中检查此元素时,它存在且存在。但是,使用

link = "http://www.multitran.ru/c/m.exe?a=110&sc=4&recno=3506179&dict=&l1=1&l2=2"
page = Nokogiri::HTML(open(link))
puts "#{page}"

不打印指向下一页的链接。所有到字母的链接都在那里,但没有

<a href="m.exe?a=110&sc=4&recno=3506774&dict=&l1=1&l2=2">>></a>

这是以某种方式动态生成的,并且ruby无法捕获它(?) “下一页”的链接没有任何逻辑顺序,所以我不能增加网址本身.. 任何帮助appriciated

1 个答案:

答案 0 :(得分:2)

你原来的猜测是正确的。该页面仅包含特定用户代理的下一个链接。

尝试像这样冒充谷歌Chrome:

page = Nokogiri::HTML(open(link, 'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'))