SlideShare a Scribd company logo
利用網路爬蟲技巧擷取資料
Taipei Medical University
Hsun-Chieh, Wang 王薰婕
01 什麼是網路爬蟲
02 為什麼要用網路爬蟲技術
03 爬取網頁的方法
04 反爬蟲技術及其破解
05 實作:爬取有公開資源的網頁
06 靜態爬蟲 vs. 動態爬蟲
Taipei Medical University
01
什麼是網路爬蟲
Web Crawler:網路爬蟲
https://www.tsg.com.tw/blog-detail3-246-1-web-crawler.htm
https://reurl.cc/Aj0kyp
Request & Response
https://hackmd.io/@NCHUIT/1101223
HTTP(S) vs. HTML
HTTP :超文本傳輸協定
HTML:超文本標記語言
Request in HTTP
GET Method
用 https://www.google.com/search 的網頁
按下F12後會看到送出的 GET 參數
(https://網址?參數=參數值– headers, cookies, params)
POST Method
將要處理的資料提交上去,類似於更新操作
robots.txt
02
為什麼要用網路爬蟲技術
數據收集&自定義內容
https://images.app.goo.gl/aTr5ASny236cZTnr7
小小ㄉ總結
03
爬取網頁的方法
之以 Line Notify 傳送地震資訊
取得氣象資料開放平台使用授權碼
1.註冊並登入氣象資料開放平臺
2.點選小區域有感地震報告,取得授權碼
尋找地震資訊資料
1.點擊API連結(沒有直接的.json檔)
2.輸入授權碼及想得到的數據值
尋找地震資訊資料
在瀏覽器開啟json檔並觀察其資料格式
Google Colab
1.搜尋 Google Colab
2.新增筆記本
Google Colab: 利用 Get method 爬取地震資料
Google Colab: 利用 Get method 爬取地震資料
發送 LINE Notify 通知
1.申請LINE Notify 權杖
https://notify-bot.line.me/zh_TW/
2.登入後在個人頁面點選發行權杖
發送 LINE Notify 通知
複製權杖後(要儲存!)關閉即會收到發行個人權杖的通知
發送 LINE Notify 通知
利用Requests的POST將雷達回波圖傳送到Line中
自己的授權碼權杖
03
爬取網頁的方法
之爬取靜態網頁資訊
搜尋即時股價
搜尋即時股價
Beautiful Soup
常用函式:
find():titles = soup.find("p", class_="summary")
find_all():titles = soup.find_all("p", class_="summary", limit=3)
select_one():result = soup.find("h3", itemprop="headline")
print(result.select_one("a"))
select():titles = soup.select(".summary", limit=3)
程式碼
03
爬取網頁的方法
之不寫程式的網路爬蟲
Web Scraper
Web Scraper
04
反爬蟲技術及破解
常見的反爬蟲機制
1.判斷瀏覽器 headers 資訊 破解難度:低
2.使用動態頁面 破解難度:中低
3.加入使用者行為判斷 破解難度:中
4.模擬真實用戶登入授權 破解難度:中
5.加入驗證碼機制 破解難度:高
6.封鎖代理伺服器與第三方 IP 破解難度:高
ref.https://steam.oxxostudio.tw/category/python/spider/crack-spider.html#a1
常見的反爬蟲破解
1.判斷瀏覽器 headers 資訊:
加入瀏覽器 headers 資訊
(透過 Request & Selenium 函式庫)
2.使用動態頁面:
確認動態頁面的架構
3.加入使用者行為判斷:
以 Selenium 函式庫的功能,模擬出先碰觸元素,再進行點擊的動作
也可加入 sleep 來避開檢查機制
常見的反爬蟲破解
4.模擬真實用戶登入授權 破解難度:
從 Chrome 開發者工具裡可以看到所需要的 Cookies 資訊,利用
request & response 破解
5.加入驗證碼機制 破解難度:
執行兩次爬蟲,先爬取目標網頁,在爬取 2Captcha 網頁取得辨識後
的驗證碼,最後再把驗證把輸入目標網頁。
6.封鎖代理伺服器與第三方 IP 破解難度:
更換 IP 或更換代理伺服器才能破解,利用 get method 帶入
05
實作:爬取雷達回波圖並用LINE Notify回傳
&爬取有公開資訊的網頁
06
動態爬蟲
Selenium 函式庫
提供了一個簡單的API應用程式介面
可以利用Selenium Webdriver 編寫功能及測試。
ref.https://medium.com/marketingdatascience/selenium%E6%95%99%E5%AD%B8-%E4%B8%80-%E
5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8webdriver-send-keys-988816ce9bed
Selenium 函式庫
可以進行定位(搜尋框等):
driver.find_element_by_class_name
放入字元:element.send_keys
刪除文字:element.clear()
點擊特定地點:先找到按鈕的網頁元素,
再按 button.click()
鍵盤上的相關資訊:
from selenium.webdriver.common.keys import Keys
ref.https://medium.com/marketingdatascience/selenium%E6%95%99%E5%AD%B8-%E4%B8%80-%E
5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8webdriver-send-keys-988816ce9bed
Selenium 函式庫
抓取網頁元素:利用 CLASS_NAME, CLASS, LINK_TEXT, XPATH 等
ex.
ref.https://medium.com/marketingdatascience/selenium%E6%95%99%E5%AD%B8-%E4%B8%80-%E
5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8webdriver-send-keys-988816ce9bed
動態爬蟲簡介
1. 前往特定貼文頁面 browser.get(url)
2. 抓取目前網頁原始碼soup(browser.要選取的東西)
3. 獲得需要的內容:圖片或影片連結 soup.find_all
4. 寫迴圈,查找自己需要的內容 etc.
ref.https://medium.com/marketingdatascience/%E8%B7%9F%E8%91%97ig%E6%BD%AE%E6%B5%81%E4%BE%86
%E7%88%AC%E8%9F%B2-%E5%A6%82%E4%BD%95%E7%8D%B2%E5%8F%96%E8%B2%BC%E6%96%87%E5%9C%96%E7%89%87
-%E5%BD%B1%E7%89%87%E9%80%A3%E7%B5%90-%E7%B3%BB%E5%88%974-%E9%99%84python%E7%A8%8B%E5%BC%8F
%E7%A2%BC-fe9f3f3e3f62
Thank you !
GDSC - TMU chapter Facebook LinkedIn
Instagram

More Related Content

Similar to 0516網路爬蟲.pdf0516網路爬蟲.pdf0516網路爬蟲.pdf0516網路爬蟲.pdf

Session1.pdf
Session1.pdfSession1.pdf
Session1.pdf
ssuser9026c8
 
Web Introduction
Web IntroductionWeb Introduction
20151021联动技术大讲堂35(刘胜)网络爬虫技术实战
20151021联动技术大讲堂35(刘胜)网络爬虫技术实战20151021联动技术大讲堂35(刘胜)网络爬虫技术实战
20151021联动技术大讲堂35(刘胜)网络爬虫技术实战
liu sheng
 
twMVC#22 | 什麼鬼的IOC與DI
twMVC#22 | 什麼鬼的IOC與DItwMVC#22 | 什麼鬼的IOC與DI
twMVC#22 | 什麼鬼的IOC與DI
twMVC
 
Session1(更新20230205).pdf
Session1(更新20230205).pdfSession1(更新20230205).pdf
Session1(更新20230205).pdf
ssuser9026c8
 
99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnetShi-Hwao Wang
 
Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)
光风
 

Similar to 0516網路爬蟲.pdf0516網路爬蟲.pdf0516網路爬蟲.pdf0516網路爬蟲.pdf (7)

Session1.pdf
Session1.pdfSession1.pdf
Session1.pdf
 
Web Introduction
Web IntroductionWeb Introduction
Web Introduction
 
20151021联动技术大讲堂35(刘胜)网络爬虫技术实战
20151021联动技术大讲堂35(刘胜)网络爬虫技术实战20151021联动技术大讲堂35(刘胜)网络爬虫技术实战
20151021联动技术大讲堂35(刘胜)网络爬虫技术实战
 
twMVC#22 | 什麼鬼的IOC與DI
twMVC#22 | 什麼鬼的IOC與DItwMVC#22 | 什麼鬼的IOC與DI
twMVC#22 | 什麼鬼的IOC與DI
 
Session1(更新20230205).pdf
Session1(更新20230205).pdfSession1(更新20230205).pdf
Session1(更新20230205).pdf
 
99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet99 第六屆國際健康資訊管理研討會簡報botnet
99 第六屆國際健康資訊管理研討會簡報botnet
 
Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)Talk about parser text from web pages(hunantv.com)
Talk about parser text from web pages(hunantv.com)
 

More from ssuserded2d4

TMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdf
TMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdf
TMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdf
ssuserded2d4
 
0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf
0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf
0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf
ssuserded2d4
 
17校GDSC聯合交流會____________________________________________
17校GDSC聯合交流會____________________________________________17校GDSC聯合交流會____________________________________________
17校GDSC聯合交流會____________________________________________
ssuserded2d4
 
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
ssuserded2d4
 
1130用dialogflow建立聊天機器人.pdf
1130用dialogflow建立聊天機器人.pdf1130用dialogflow建立聊天機器人.pdf
1130用dialogflow建立聊天機器人.pdf
ssuserded2d4
 
北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf
ssuserded2d4
 
北區GDSC20231112.pdf
北區GDSC20231112.pdf北區GDSC20231112.pdf
北區GDSC20231112.pdf
ssuserded2d4
 
2023-10-05專案開發.pdf
2023-10-05專案開發.pdf2023-10-05專案開發.pdf
2023-10-05專案開發.pdf
ssuserded2d4
 

More from ssuserded2d4 (8)

TMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdf
TMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdf
TMU_GDSC_20240509.pdfTMU_GDSC_20240509.pdf
 
0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf
0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf
0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf0425-GDSC-TMU.pdf
 
17校GDSC聯合交流會____________________________________________
17校GDSC聯合交流會____________________________________________17校GDSC聯合交流會____________________________________________
17校GDSC聯合交流會____________________________________________
 
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
 
1130用dialogflow建立聊天機器人.pdf
1130用dialogflow建立聊天機器人.pdf1130用dialogflow建立聊天機器人.pdf
1130用dialogflow建立聊天機器人.pdf
 
北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf北區13校GDSC聯合流會.pdf
北區13校GDSC聯合流會.pdf
 
北區GDSC20231112.pdf
北區GDSC20231112.pdf北區GDSC20231112.pdf
北區GDSC20231112.pdf
 
2023-10-05專案開發.pdf
2023-10-05專案開發.pdf2023-10-05專案開發.pdf
2023-10-05專案開發.pdf
 

0516網路爬蟲.pdf0516網路爬蟲.pdf0516網路爬蟲.pdf0516網路爬蟲.pdf