爬蟲

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來嵌入另ㄧ個網頁,而在iframesrc中竟直接提供該網址,所以我們直接丟request GET request過去,也順利拿到資料,所以我們的想法很簡單

  1. 第一步,抓取iframe中的src
  2. 第二步,從src的網址中獲取資料並進行剖析

實戰:爬取591租屋網


CRSF-TOKEN

我們發現搜尋租屋物件主要透過rsList這個XHR去抓取,但直接打這個網址是拿不到資料的,我們必須在header設定CookieX-CRSF-TOKEN才有辦法拿到資料

很幸運的,我們發現其實CRSF-TOKEN這個資料就藏在<head> -> <meta name="crsf_token">中,所以只要抓取下來即可

References

  1. iframe介紹
  2. Beautifulsoup官方文件
  3. 獲取CSRF-TOKEN
  4. CSR介紹