140 likes | 178 Views
計算機概論作業 — 初學網路爬蟲. 2019/04/25 課程 助教 : 陳 胤竹. 大綱. 前言 工具 安裝 (Anaconda) 程式語言 Python 認識爬蟲與基本操作 分析 HTML 格式並找尋可爬題材 進階爬蟲 ( 模擬使用者 ) 可能問題集 作業規 定. 前言. 網路爬蟲是一個減少重複複製貼上工作的工具 自動化抓取網頁內容的 程式 包含文字、檔案、圖片 …… 等 爬蟲素材 一般公開網頁資訊 請勿運用來載非法資源 ( 例如 : 大量下載版權論文 ) 課堂 Demo 運用關鍵字自動載圖片 ( IG+flicker )
E N D
計算機概論作業—初學網路爬蟲 2019/04/25 課程助教: 陳胤竹
大綱 • 前言 • 工具安裝(Anaconda) • 程式語言Python • 認識爬蟲與基本操作 • 分析HTML格式並找尋可爬題材 • 進階爬蟲(模擬使用者) • 可能問題集 • 作業規定
前言 • 網路爬蟲是一個減少重複複製貼上工作的工具 • 自動化抓取網頁內容的程式 • 包含文字、檔案、圖片……等 • 爬蟲素材 • 一般公開網頁資訊 • 請勿運用來載非法資源(例如:大量下載版權論文) • 課堂Demo • 運用關鍵字自動載圖片(IG+flicker) • 使用工具:Python Selenium套件+ Google Chrome Web driver
工具安裝:Anaconda • 下載網址:https://www.anaconda.com/ • 安裝教學:https://medium.com/python4u/anaconda%E4%BB%8B%E7%B4%B9%E5%8F%8A%E5%AE%89%E8%A3%9D%E6%95%99%E5%AD%B8-f7dae6454ab6 • 使用Jupyter Notebook • 使用教學:https://medium.com/python4u/jupyter-notebook%E5%AE%8C%E6%95%B4%E4%BB%8B%E7%B4%B9%E5%8F%8A%E5%AE%89%E8%A3%9D%E8%AA%AA%E6%98%8E-b8fcadba15f
作業繳交網址 網址:http://acblab.synology.me/ 請練習繳交測試作業1,不計分 內附上課程式碼下載
程式語言:Python • 學習資源: • W3school: https://www.w3schools.com/python/default.asp • Learnpython.org: https://www.learnpython.org/ • 精通 Python:運用簡單的套件進行現代運算 https://www.books.com.tw/products/0010690075?utm_source=ilovebooks&utm_medium=ap-books&utm_content=recommend&utm_campaign=ap-201703 • 程式書籍借閱處推薦(有來上課才知道喔!)
認識爬蟲與基本操作-1 • 1.認識網頁格式(HTML檔) • 使用Chrome瀏覽器,按右鍵”檢查”,查看網頁原始碼 • 2.使用套件requests, BeautifulSoup • 3.用”get語法“將網頁原始碼抓下來(範例) • 4.利用BeautifulSoup將網頁資料以html.parser儲存(範例)
認識爬蟲與基本操作-2 • 5.運用select找出想要擷取的部分 • .ABC(class=“ABC”的所有標籤) • div.DEF(class=“DEF”的div標籤) • div.DEF a(class=“DEF”的div標籤內所有的a標籤) • div.DEF> a(class=“DEF”的div標籤內一層所有的a標籤) • #XYZ(id=“XYZ” 的標籤) • https://www.w3schools.com/cssref/css_selectors.asp • 6.從搜尋引擎抓結果 • 7.下載檔案
分析HTML格式 • <html> <head> XXXXXX </head> <body> <p>ABCDEF</p> <div class=“ABC”> <div id=“XYZ”></div> <a herf=http://tw.yahoo.com>Yahoo!</a> </div> </body> • </html>
分析HTML格式 • 分析各種標籤的種類、id、class名稱 • id是唯一,class不唯一 • 下達正確的select指令 • 目標找到符合項目最少的標籤組合 • 補充資料(最後防線) • BeautifulSoup中的正規表示式用法https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/369794/ • 正規表示式語法http://larry850806.github.io/2016/06/23/regex/
進階爬蟲 • 1.遇到需要點擊按鈕才能進入的網頁 • 2.防止機器人的網頁 • 外加header • 3.需要滑動網頁才能新增內容 • Facebook, Instagram...
其他學習資源 • 網路爬蟲相關: • https://ithelp.ithome.com.tw/articles/10202121 • https://ithelp.ithome.com.tw/articles/10186119 • https://www.largitdata.com/course_list/1 • Beautiful Soup官方文件: • https://www.crummy.com/software/BeautifulSoup/bs4/doc/
作業規定 • 作業主題: 初學網路爬蟲 • 作業敘述: 請挑選一個網頁進行網路爬蟲,並繳交程式碼與結果 • 1.作業必須包含兩個檔案 • (1)可執行的程式碼.py檔 (檔名: 學號.py) • (2)書面報告(檔名:學號.pdf) • 若有output檔案也可以繳交(檔名無額外規定,但需要在書面報告說明output檔是什麼) • 請將所有檔案壓縮成.zip壓縮檔(檔名: 學號.zip) • 注意: 格式繳交錯誤斟酌扣分
作業規定 • 2.書面報告內文請撰寫在5頁A4之內,爬蟲輸出成果可附在附錄或另外output檔,不在頁數限制之內。 • 請說明 • (1)為何選擇該網頁 • (2)透過哪些方法爬到該資料 • (3)蒐集到的資料呈現(可另外繳交output檔案或附於報告內) • (4)該資料可以如何進一步利用(可以分析、統計等) • 3.作業可無限次數繳交,惟獨每次繳交檔案大小有上限規定,批改以期限內最新版作業為主。 • 4.作業嚴禁抄襲,但鼓勵討論,若有和同學討論出心得可以註明在書面報告內 • 繳交截止期限為5/31(五)23:59 • (若有繳交問題請聯繫助教r06945028@ntu.edu.tw,若是系統問題導致無法繳交會視情況調整繳交時間)