2011-06-26 51 views
0

在使用網絡爬蟲時,我遇到了這個奇怪的事件;下面是由Web服務器返回http://nexgen.ae頁面內容的一個片段:web服務器返回的奇怪html文件

< ! D O C T Y P E H T M L P U B L I C " -// W 3 C// D T D H T M L 4 . 0 T r a n s i t i o n a l// E N " > 

< H T M L > < H E A D > < T I T L E > N e x G e n T e c h n o l o g i e s L L C | F i n g e r p r i n t T i m e A t t e n d a n c e M a n a g e m e n t S y s t e m | A c c e s s C o n t r o l M a n a g e m e n t S y s t e m | F a c e R e c o g n i t i o n | D o o r A c c e s s C o n t r o l | E m p l o y e e s A t t e n d a n c e | S o l u t i o n P r o v i d e r | N e t w o r k S t r u c t u e d C a b l i n g | D u b a i | U A E) </T I T L E > 

正如你所看到的,web服務器似乎在原有的HTML源所有其他字符之後已經插入空格字符。我在Firefox中使用「頁面源代碼」檢查了HTML源代碼,並且沒有多餘的空格。我還檢查了來自同一網站的其他網頁,並且我正在爲這些網頁獲取正確的HTML文件。到目前爲止,這個問題似乎只發生在這個網站的默認頁面,當通過網絡爬蟲訪問時。

我注意到html文件最後包含「google優化器跟蹤腳本」。我不知道這個問題是否與此有關...

或者,這可能只是網站管理員的方式來保持網絡爬蟲?如果是這種情況,robots.txt文件就可以做到!

回答

1

那些可能不是空格,它們是空字節。該頁面以UTF-16編碼(每個字符2個字節的倍數,最小值爲2),並且由於該網站未在其HTTP標頭中正確指定其編碼,因此您試圖將其讀取爲ASCII(每個字符1個字節)或可能是UTF-8(每個字符1個字節或更多)。

要了解我的意思,請在瀏覽器中打開它並更改編碼(瀏覽器菜單中的某處,可能必須右鍵單擊頁面)並選擇UTF-16LE選項。

+0

感謝一堆,使一個很大的感覺! –