爬蟲
8 April 2020
cs
cs
server
client
crawler
requests
beautifulsoup
本文章僅記錄學習爬蟲
的過程
爬蟲
透過發送HTTP
的相關套件像是requests
,並由BeautifulSoup
來剖析,但根據網站架構設計不同,有些資料是動態被顯示的,可能需要透過設定標頭檔(header)等,來模擬行為以獲取資料
requests
import requests
session = requests.session()
resp = session.get(url)
BeautifulSoup
安裝beautifulsoup
pip install beautifulsoup
宣告beautifulsoup
來使用
from bs4 import BeautifulSoup
soup = BeautifulSoup(resp.text, 'html.parser')
find_all
find_all
是最常使用到的函式,可以找到所有該標籤(tag)的元素
soup.find_all("iframe")
實戰: 爬取股市外資買賣超資料
我們想要從此網站: 凱基證券爬取每日外資買賣超資料
經過觀察,發現買賣超的表格是透過iframe
來嵌入另ㄧ個網頁,而在iframe
的src
中竟直接提供該網址,所以我們直接丟request GET request
過去,也順利拿到資料,所以我們的想法很簡單
- 第一步,抓取
iframe
中的src
- 第二步,從
src
的網址中獲取資料並進行剖析
實戰:爬取591租屋網
CRSF-TOKEN
我們發現搜尋租屋物件主要透過rsList
這個XHR
去抓取,但直接打這個網址是拿不到資料的,我們必須在header
設定Cookie
和X-CRSF-TOKEN
才有辦法拿到資料
很幸運的,我們發現其實CRSF-TOKEN
這個資料就藏在<head> -> <meta name="crsf_token">
中,所以只要抓取下來即可