計算機概論作業—初學網路爬蟲
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%B 9%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_co ntent=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 格式
分析各種標籤的種類、 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