2015-05-07 26 views
1

有本字典:Russian dictionary解析HTML與引入nokogiri並不是所有的標籤都存在

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

不打印到下一頁的鏈接。所有鏈接字母都是存在的,但沒有

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

這是莫名其妙動態生成和紅寶石不抓住它(?) 「下頁」的鏈接沒有任何邏輯順序,所以我不能增加URL本身.. 任何幫助appriciated

+0

你可以看到「>>」源與JS鏈接關閉 - 所以它不會產生客戶端 - 這不是問題。 –

+0

此外,>>在源作爲> >這也許就是絆倒在引入nokogiri解析器 –

+0

對於它的價值沒有被編碼,我只是跑你的代碼,它跳過>>我的機器上也是如此。 –

回答

2

你原來的猜測是正確的。該頁面僅包含特定用戶代理的下一個鏈接。

嘗試故作谷歌瀏覽器這樣的:

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')) 
+1

另外,還要留意對robots.txt的 http://www.multitran.ru/robots.txt –

+0

謝謝!這樣可行。 – pnb1