爬蟲
			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">中,所以只要抓取下來即可