Month: October 2015

PyCrawler 101 201510 上課心得

先講一下我會報名木刻思PyCrawler 101 201510的動機好了,會選擇上這門課是因為我在11月份有報名DSP 智庫驅動資料分析的課程,所以打算先上這門課來熱身一下,上這門課前我的Python程度就是一年前有把codecademy Python課程上完然後已忘得差不多了…但基於身為人類羞恥心的驅使上課前我買了一本Python書K一下

Week 1(10/3)

edited_1443853519100

這週上的東西還滿基礎的,課前要注意的就是要把環境先裝好,第1週並沒有講到太多code但有一些homework,主要講師先帶我們過一遍寫爬蟲前需要觀察的瀏覽器行為:

  • 先確認想要爬的網頁是屬於Page-render or Ajax
  • 找出Data被藏在哪個section(XHR、JS、Doc或WS)
  • 開始寫爬蟲吧

其實前半段的部份對我來說還滿熟悉的,像是:chrome、firefox 的 developer tools和postman extension畢竟工作上會用到,但有學到一些沒用過的小技巧和extension:

小技巧:

  • 打開Chrome Developer tools啟用Preserve log就可以看得到status code 是302的response且在response header可以找到被轉址的location(Firedebug也有類似的功能)
  • 可先關閉瀏覽器執行Javascript檢查目前頁面是屬於Page-render or Ajax

extension:

  • cookies.txt-我們都知道瀏覽器預設可以觀看和刪除cookie,但這個插件強大的地方就是還提供新增和刪除cookie的功能LOL
  • HackBar-功能和postman有點重疊,但有很多postman沒有的功能

寫爬蟲說到底就是要模瀏覽器的行為,雖然課後有一些回家作業但還好下週有3天連可以好好利用

對了hackpad真是個好東西啊!

Week 2(10/17)

edited_P_20151017_115303

這週上課前原本我預計要預習的範圍大概只完成了10%左右,讓我覺得很羞愧啊啊啊…因為換了新的環境工作上有要先學習的東西,還好這週的進度我還跟得上,但這週的homework還是豐富啊~雖然是沒有強制性的作業,但繳了不少錢來上這門課還真的會乖乖去做作業…這大概就是身為鬼島人的奴性

稍微總結一下這週自己在這門課學到的新東西:

1. XPath (XML Path Language)

之前我只知道CSS Path不知道XPath,雖然瀏覽器的Developer mode有顯示但我也沒特別鳥它…現在我知道除了使用CSS selector的方式之外,也可以用XPath的方式指定到某個element

2. 編碼問題

順利從自己想要的網頁取回raw data後,要檢查是否有編碼問題,講師也有提到大部份台灣政府網站的編碼都是錯的XD,這應該是大家都知道的秘密吧 哈哈 這個雷我也踩到過

3. XPath Helper

工欲善其事,必先利其器,雖然瀏覽器的Developer mode也有提供類似的功能,但XPath Helper比較好用一些

 

Week 3(10/24)

先說結論,這週上的內容和前兩週的性質不太一樣

這週主要是在講如何串接Facebook Graph API,示範利用FB Graph API取得所需的資料

以及串接過程中需要注意的事情,像是token失效及存取限制和API分頁等問題

總結一下三週課程的收穫

第1週:學習到觀察瀏覽器行為的技巧和HTTP協定的觀念

第2週:實作爬蟲需要注意的雷,講師挑了不少範例Demo一些實際製作需要注意的事情,這週有點可惜的是講師沒有講如何爬websocket的資料,這部份就當回家作業吧

第3週:Facebook Graph API的觀念(nodes | edges | fields)