2013-06-03 15 views
1

我試圖解析一些網頁,如這些:抓取網頁時可能出現這些奇怪的問題,可能是編碼?

http://www.imovirtual.com/imoveis/apartamentos/t0-t1-entrecampos-mobilado-lisboa/1038329/ 
http://www.imovirtual.com/imoveis/apartamentos/t2-quinta-do-romao-quarteira/1156717/ 

我使用的是引入nokogiri :: HTML,並與第一環節都正常,但第二個我只得到垃圾桶,它的不可能解析。

我試過使用curl,結果是一樣的。 下面是結果的第二個鏈接的樣本:

��� DG;v�u�G{f� 
        ��;?�@ː0t�Yw���`~�d�� 
f9����:�}P2k�㤷ϓ���togg���B�D�j���P�AS���cV���5h+�dp 

可以採取什麼問題嗎? 這兩個頁面在瀏覽器中都很好地呈現,我無法找到它們的DOM中的顯着差異。

注意:在第二個鏈接上使用wget會導致無法讀取的文件。

回答

2

該網頁已壓縮,請檢查文件頭:內容編碼:gzip 需要解壓縮。

編輯:

如果您正在使用紅寶石試試這個:

cleanHtml = Zlib::GzipReader.new(StringIO.new(htmlCompressed)).read 
+2

最有可能的OP使用OpenURI,所以也許應該是:'的Zlib :: GzipReader.new(開放(url_to_resource) ).read' –

+0

它的工作原理!你知道一種方法來弄清楚它的壓縮與否? –

+0

我結束了: 'page = Zlib :: GzipReader.new(page)if page.content_encoding.include? 「gzip」' 也發現你可以使用'curl -I'來獲取響應頭。 @walfire @ the-tin-man –

相關問題