--- tags: lab --- # 爬蟲教學 ## 爬蟲 * 網路爬蟲是一種機器人,可以幫您自動地瀏覽網際網路並擷取目標資訊 * 自動化爬取目標網站,並蒐集目標資料 ## 爬蟲 Moudle ( Python ) * requests * pip3 install requests * [官方文件](https://requests.readthedocs.io/en/master/) * BeautifulSoup * pip3 install bs4 * [官方文件](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) * selenium ( 當目標網站為動態網頁 ) * 不同瀏覽器需要配合不同的 Web driver * Chrome - ChromeDriver * Firefox - geckodriver * 不同版本瀏覽器需下載對應的 Web driver 版本 * geckodriver v0.27.0 requires Firefox version ≥79 * pip3 install selenium * [官方文件](https://selenium-python.readthedocs.io/) ## 爬蟲流程 * 取得指定網域下的HTML資料 * 透過requests取得HTML * 解析這些資料以取得目標資訊 * 透過開發者工具 ( F12 ),觀察目標資訊的位置 * 透過BeautifulSoup解析HTML ## 爬蟲範例 ```python= import requests from bs4 import BeautifulSoup from selenium import webdriver url = 'http://hosp.kgh.com.tw:8112/VICU/' # 用requests 抓取網頁並存在response response = requests.get(url) # 用BS4解析HTML並把結果回傳soup soup = BeautifulSoup(response.text, 'html.parser') ''' 使用 selenium driver = webdriver.Firefox(executable_path='webdriver的路徑') driver.get(url) soup = BeautifulSoup(driver.page_source, 'html.parser') ''' # 找到所有 tr 的標籤 table = soup.find_all('tr') table ''' 找到目標後,再對其進行處理取得你想要的資料 ''' s = [] b = [] s.append(table[0].text.replace("\n", "")[:6]) b.append(table[0].text.replace("\n", "")[6:]) s.append(table[1].text.replace("\n", "")[:1]) b.append(table[1].text.replace("\n", "")[1:]) s, b ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up