R Crawler 初階課程
網路爬蟲會不會很難學?
「Crawler 101 系列」 是一門想幫助學員,能夠快速的從初階到精通的課程!
不論,你是新手蟲友,或是剛入門的蟲友 ...
我們都希望,這堂課可以帶給你不同層次的學習、挑戰、享受與成就感!
-
給還是初學者的你:
其實,網頁爬蟲沒有想像中的那麼困難,只要知道一些基本的網頁技術與觀念,就能在短時間內寫出第一隻爬蟲。多短呢?半天,你也能寫出爬蟲唷!一起來試試吧!
(如果不小心玩上癮的話,我們也曾經教過,初學者在一個月內就變得非常厲害的唷!)
-
給剛入門的爬蟲寫手的你:
相信,在爬行的路途上,你一定也遇過不少難纏的網站,面對日新月異的網站技術,想寫出攻無不利的爬蟲,你需要知道更多攻防戰法。讓身經百戰的爬蟲寫手,告訴你對付難纏網頁的秘訣!
其實,網路爬蟲最難的部份 ... 是觀察!
不論,你是新手蟲友,或是甫入門的蟲友 ...
爬行時,如果遭遇到困難,大多數都來自觀察!而不是寫 code 或是實做!
因此,我們並不會像一般的網路爬蟲課一樣,僅僅教你如何使用某種語言的 code 來完成某些特定的爬行工作。
我們會從新手,就開始教你各種需要豐富經驗才能累積出來的觀察流程與觀察技巧!
並提供大量的練習機會,讓學員有機會可以大量練習這些技巧!
(為了這堂課,我們大約準備好了將近 50 各個種不同難度的網站,不同學習目標,可以隨時給大家練習與挑戰!)
一般來說,我們都希望站在資訊不對稱的一端 ...
以個人來說,你是否會想知道,最近的近三個月之中,有哪些朋友,常在你的 Facebook 上按讚與留言的呢?想要偷偷的知道一下,到底有哪些朋友在關注自己呢?
(當個自己的小小徵信社)
或是,你是否曾經使用 Facebook API 來抓取一些朋友或粉絲團的資料,想要抓取大量資料,但卻苦於 token 每兩個小時就會 expired 一次,無法自動更新呢?(覺得每次抓資料前,都要去 Graph Explorer 剪下貼上一次,很麻煩!)
面對著這個資訊量極大的年代!許多原本只能仰賴內部資料的商業決策,也開始利用大量的外部資料,更精準的定位與定義,各種市場與客群的問題。
例如,最近在美國出現的輿情炒股系統,就是利用 Twitter 上大量的使用者留言資料,來預測或投資股票市場!
這是個資料快速變化的世代 !
Amazon 的自動調價系統,可以在兩小時內自動對整體商品進行價格調整!
而身為一個資深股民,我們觀察到 DRam 和面板產業,其股價的變動往往是落後於終端市場的價格變動。 因此,監控 PCHome 和 Amazon 上的相關商品的價格資料,對於做相關的投資決策,是有非常大的幫助的!
在課程中,您可能會玩到的網站 ...
-
金融類:
-
運彩類:
-
(optional) 英超
-
輿情,論壇與新聞類:
-
房地產類:
-
地理資訊類:
-
困難連線流程學習標的:
-
自動化練習:
-
如何自動在留言板上留言 (登入與未登入)
-
如何自動在 FB 上留言與按贊
-
如何用爬蟲自動訂購線上商品 (述不方便公佈網站)
-
(optional) 自動抓取 Youtube 影片
-
雖然,我們無法保證在有限的上課時間中,能講完以上所有的範例!
但是,可以保證的是,如果你把上課中提到的技巧都學會了,假以時日,上述的網站中的資料,都可以如探囊取物般的拿到唷!
以上,是我們課程的講師助教群,特別精心挑選過的一些範例,非堂適合初學者或入門者,可以從初學到進階作為練習使用!
課程進行方式
-
每次三小時,講課加上現場操作 (現場有助教輔導)
-
會幫大家分小組,每個小組會有助教擔任 mentor
-
每堂課後都有 Office Hour,讓大家可以現場找 mentor 請益
-
每次都有小組回家作業或專案,我們希望大家不只能來上課,還能交到許多可以一起合作的蟲友們。
-
所以,當您報名之後,我們會針對大家想爬行的網站,進行分組。並在此同時,就會有小組 mentor 與您聯繫,讓您可以加入一些小組對話群組,並熟悉界面與論壇的使用!
上課前,的一點點課前作業 ...
-
如果您不熟悉 R 的話 ...
-
可以從這裡開始:http://tryr.codeschool.com/
-
-
如果您對 HTML 和 CSS 沒有基礎概念的話 ...
-
動手學 HTML & CSS
-
或是習慣看影片學習的朋友,也可以從這邊開始:https://www.udacity.com/course/intro-to-html-and-css--ud304
課程進度與時程安排
-
Week 1 (7/18)
-
The Secret of Web
-
網頁入何出現在你眼前的?
-
如何觀看網頁的各種 connections?
-
你想抓的 data 在頁面上的哪裡?
-
你想抓的 data 在哪一個 connection 中?
-
什麼是 Ajax 網頁?
-
-
標出你想要的 data (練習使用 CSS & CSS Selector 換顏色)
-
基本的爬蟲架構:connector + parser + database
-
如何用 R 寫出最簡單的爬蟲
-
-
Week 2 (7/25)
-
Connection Skills:
-
GET / POST
-
URLencode / URLdecode (破解中文網址的祕密)
-
header & cookie
-
如何突破使用 cookie 阻擋的網站 (如ptt 18 禁...等等)
-
-
Parsing Skills:
-
css selector
-
xpath selector
-
json
-
xml
-
-
Data Storage
-
如何將資料輸出成 CSV
-
如何將資料存入 SQLite
-
-
R 語言
-
如何快速上手一個完全沒用過得套件?
-
學習使用 debug & trace
-
-
-
Week 3 (8/1)
-
Connection Skills:
-
user agent
-
referrer
-
如何下載檔案 (例如去如期交所,OTC抓取 *.csv 或 *.zip 檔)
-
外部 API 使用 (如 FB graph api ...等等)
-
-
Parsing Skills:
-
Regular Expression 簡介
-
如何用 RegEx 抽取非結構化資料 (非HTML/XML/JSON)
-
如何抓取網頁中的電話號碼?地址?
-
-
R 語言
-
如何讓自己寫的 R code 可以再重複使用
-
-
-
Week 4 (8/9)
-
Connection Skills:
-
複雜連線實戰與練習 (需驗證碼,要拿 token,以實價登入為例)
-
(optional) 如何使用 web driver
-
如何突破阻擋連線總次數的網站
-
(optional) 如何處理需要登入的網站
-
-
Parsing Skills:
-
如何解析 zip 檔
-
如何解決 utf16 的編碼問題
-
JSONP 解析實戰
-
(optional) 如何處理爛掉的 CSV or 爛掉的 JSON
-
-
R 語言
-
如何包裝 R 套件
-
-
課前說明會
此外,為了讓大家可以在上課之前,更了解我們的課程。
讓大家可以做好更充沛的課前預習,以便能在學習時發揮最大效益!
我們特別準備了兩場課前說明會,讓大家可以到現場來提問唷!
http://datasci.kktix.cc/events/rcrawlerinfo
如果您是還在猶豫是否要報名的朋友,那就更應該來參加我們準備的課前說明會了!
相信,一定可以讓您覺得,這是一次非常值得投資的學習與體驗!
而且,如果您想用三人團報方案,但是苦於找不到夥伴一起團報的話,那就更應該參加本次的說明會了!說不定就可以在現場遇到一起團報的夥伴囉!
課外砍站活動: A Crawler A Day
為了讓上過木刻思開的爬蟲課的學員們 (目前開過 Python & R 的課),能有更多練習的機會。
我們特別企劃了一個爬蟲的練習活動:A Crawler A Day
http://data-sci.info/a-crawler-a-day/
(將於 7/4 的課程說明會,與蟲友小聚時正式上線)
讓大家可以在學習之餘,也能有更多練習和玩耍的機會!
其實,寫爬蟲是一件非常有趣的事情,希望大家都能夠發揮柯南的精神,享受探索網站的樂趣!
報名課程附有發票
所以,請您在填寫報名表時,務必註明所需要的發票種類,如果需要三聯發票,也請註明統一編號!
團報優惠
由於,課程會分組,所以我們特別提供三人報名的優惠,讓大家可以在報名時就先揪好小組組員!
學生優惠
若您的身份為學生,希望購買學生票,請將您的學生證拍照或掃描,並寄至
course@agilearning.io
請使用信件 Title:
[R Crawler 報名] 學生單套票請購 OR
[R Crawler 報名] 學生團體票請購
(我們將提供您優惠票的 Promotion Code)
課程木刻思之友優惠
此外,若您曾經上過木刻思開設過的其他爬蟲課程 (R Crawler, Python Crawler ... ) 等等
想請購優惠票,也請您來信至
course@agilearning.io
並使用信件 Title:
[R Crawler 報名] 優惠票請購
並請在信中註明一下,之前曾經上過的課程!
(我們將提供您優惠票的 Promotion Code)
歡迎企業包班上課
另外,如果您的企業有超過 10 人以上想集體報名上課的話。
也歡迎來信至 course@agilearning.io
並使用信件 Title:
[R Crawler 報名] 企業包班申請
我們也非常歡迎企業包班上課唷!
R Crawler 課程輪開週期
由於,公司開課人力 (講師與助教) 有限。
本次的 R Crawler 初階課程,將會以三到四個月輪開一次的週期,一年三次左右的次數輪開。
所以,錯過這次,下次最快能上到同一堂課的機會,可能是三四個月 (或更久) 以後囉!
在中間的時間中,我們會開設更多的進階課程,以及延伸學習課程!
希望能讓學員們,在取得資料資後,能夠做更多的應用,視覺化,與分析!
本次課程講師群
-
張家齊 (Taiwan R User Group 共同創辦人)
-
陳嘉葳 (Koushuang R User Group 創辦人)
-
顏嘉儀 (R Ladies 共同創辦人)
Crawler 101 系列新課調查
感謝大家這些日子的支持,本期的 R Crawler 101 的課程,已經順利招滿!
由於,我們的開課理念,就是希望大家可以在四週內,將這些技術一次學會!
所以,我們刻意的安排了:課前說明,課前作業,助教&Mentor,課外練習活動,... 等等。
目標就是希望學員們,能夠在學習時,有個環境的幫助,獲得最多的支持力量!
礙於助教與 Mentor 資源有限,我們無法再加收更多學員,
對於還沒報名到的朋友,我們真的非常非常的抱歉!
不過,由於,想報名但是還沒報到的朋友的來信眾多,
我們決定在本次的 Crawler 101 課程之後,加開 Crawler 101 系列的相關課程
(原訂大概是 3 ~ 4 個月會開一次,這次可能一兩個月內就會在開一次了!)
稍微整理了一下大家來信中的內容,並製作出來以下的問卷:
https://docs.google.com/forms/d/12ngO5bNAWS7987uFlCLo8syc4us1WF3nF31jZAIYr4U/viewform
為了感謝幫忙填寫問卷的朋友們,我們將會在下次 Crawler 101 系列開課之前,優先讓有協助填寫問卷的朋友們拿到報名網站唷!
感謝大家對木刻思開課團隊的支持與鼓勵,除了 Crawler 101 系列之外,
我們也在積極的籌劃 …
(Python 和 R 的) Text Mining 101 系列課程
(Python 和 R 的) Data Mining 101 系列課程
(Python 和 R 的) Trading & Gambling Backtesting 系列課程
如果大家對於以上的系列課程有興趣,也請大家關注我們的網站與粉絲團!
粉絲團:https://www.facebook.com/datasci.info
我們將不定期在上面公告新系列課程的調查表,以及新課程的各種報名與說明會資訊!
感謝大家的支持,希望大家在學習這條路上,都能一起學習!互相分享!一起成長!