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

Parsing HTML with Nokogiri not all tags are present

有这本字典:Russian dictionary

在 ruby 中,我正在尝试获取下一页的 url - “>>”,即

<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}"

下一页的link未打印。所有 link 到字母表的字母都在那里,但是没有

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

这是否以某种方式动态生成并且 ruby 没有捕捉到它(?) "next pages" 的 link 没有任何逻辑顺序,所以我不能递增 url 本身。 任何帮助都适用

你原来的猜测是对的。该页面仅包含特定用户代理的下一个 link。

试着假装成 Google 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'))