Web Scraping (0) Building Scrapers
1. Installing bs4:
Beautiful soup 是一個解析 DOM 的工具,用 pip3 簡單裝一下:
$ pip3 install beautifulsoup4
2. Hello Scraper:
我們先用 urlopen("https://en.wikipedia.org/wiki/Ward_Cunningham") 取得一個 html response,再用 BeautifulSoup 解析 html。
from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen("https://en.wikipedia.org/wiki/Ward_Cunningham") # use different parser # bsObj = BeautifulSoup(html.read(), features="html.parser") # bsObj = BeautifulSoup(html.read(), features="html5lib") bsObj = BeautifulSoup(html.read(), features="lxml") print(bsObj.head.title) print(bsObj.title) headings = bsObj.find_all({"h1", "h2"}) for heading in headings: print(heading) print(bsObj.prettify()) # print whole doc
bsObj 是一個解析過 DOM 的物件,我們可以從 bsObj 獲取 html 元素的資料。
bsObj.head.title 和 bsObj.title 是相同的,代表說你不用遞迴地取得元素 (註: title 是 head 裡的元素,可以透過瀏覽器的 F12 確認這件事)。
3. Parsers:
根據官網 [1] 的說法,Parser 會決定解析的 相容性和效能。
透過指令我們可以新增 Parsers:
$ pip3 install lxml $ pip3 install html5lib
留言
張貼留言