NO IMAGE

 

目的:收集北京餐館的資訊,建立一箇中文資料庫用作以後的分析。

 

資源:眾多專業網站,http://www.dianping.com/(大眾點評網,Unicode(UTF8) 編碼)

                            http://www.bjdianping.com/(北京點評網,Chinese Simplified(GB2312)編碼)

                            http://lianmeng.fantong.com/(飯桶網,Unicode(UTF8) 編碼)

 

方法:第一步:趴網頁;

        第二步:網頁結構分析;

        第三步:匯入資料庫。

 

這裡介紹一下怎麼扒網頁的,後續步驟以後一一奉上。

  

 

不難,但有2個需要注意的地方:

1.一定記得設定等待時間,大部分網站伺服器都有阻斷過高頻繁訪問網站的功能,我的ip一段就被封了1個小時,這還算幸運的,要是因此公司對外訪問被封,那就是千古罪人了,所以扒網頁這種事不是你一個人的事,一定注意安全。解決辦法:一是寫多執行緒任務,讓不同的機器去扒,這樣依然可以很快(但其實還是擔心它自己會不會被蕩掉);二,加點等待時間,由於本人沒有多臺電腦也不好發動群眾,就只有加等待時間了,

System.Threading.

 

Thread.Sleep(500); 0.5秒。

2. 之前不是直接用的DownloadFile(adress,filename)的方法,而是用的stream讀網頁再存本地的方法。這就涉及到用什麼編碼方式讀取和儲存的事了,UTF8一般是預設設定,不會有太大問題,像“北京點評網”的網頁編碼就很詭異,GB2312,C#中就沒有 ,自己也不想再外部新增了。所以果斷放棄了扒他的網頁。

 

3. 有的網頁載入方式不一樣,如“飯桶網”餐館介紹的網頁,是先載入的框架結構,在載入的裡面的店面資訊(這點你可以通過F5重新整理時明顯看到),所以哪怕我另存為網頁後也沒有我需要的店面資訊。所以果斷放過這個網站。

 

 

後來找了很久,找到一個不錯的網站,各方面都挺好的,做得很不錯。

這裡本人珍重申明,下載下來的網頁,只用於研究所用,不做商業用途,實驗結束後會全部刪去,謝謝。如該網站有疑問,請聯絡我本人[email protected]