Python:網路爬蟲與資料分析入門實戰 簡單筆記
python, beautifulsoup, api, scrapy,…
Task list: :smile:
邊讀邊做個筆記心得。
scrayping 工具
不過當你想要自已動手打造輪子前,可能要先研究一下:
Chrome 下按 F12
開發者工具 ,可以了解 Browser 和 Server 間到底聊什麼?
是 Python 程式庫,用來解析 HTML/XML 文件 把 文本 轉成樹狀結構(?) bs4 可以用的 Parser(解析器) : html.parser(Python內建), html5lib, lxml(最快) 之後用
bs4
簡寫
也就是把糊成一團的文件,整理成程式可以拿來用的資料。
requests
: 讀入網頁, 並處理網路協定的問題,登入,session, cookie, ….
import requests
from bs4 import BeautifulSoup
resp = requests.get('https://jwlin.github.io/py-scraping-analysis-book/ch1/connect.html')
soup = BeautifulSoup(resp.text, 'html.parser')
print(soup.find('h1').text)
讀進網頁,分析完後,重要的是要如何定位想要的東西。
find()
, find_all()
.select()
.text
: Tag 所夾的文字stripped_strings
: bs4 的方法,會把物件內容的所有 Tag 清除,留下文字,移除前後空白換行,要注意的是。這個是 generator 物件除了用暴力法找以外,也可以從已找到的元素的 親層(parent)、子層(children)、兄弟層(siblings) 移動
BeautifulSoup 文件中相關的部分
.parent
, .parents
.next_sibling
, .previous_sibling
.next_element
and .previous_element
“““python import re
for title in soup.find_all(re.compile(‘h[1-6]’)): print(title.text.strip())
"””
3-1 PTT 八卦板今日熱門文章 3-2 Yahoo 奇摩電影本週新片 3-3 兩大報當日焦點新聞 3-4 Google 搜尋股價資訊 3-5 Dcard 今日熱門文章
從實例中學習抓取資料、分析。
API(Application Programming Interface):在網站來說,就是取用站方整理好的資料的介面。
HTTP request 的方法 :
GET
: 參數寫在網址POST
: 表單資料打包後,送出PUT
: 背景送出資料DELETE
: 背景刪除資料API 送回的資料,通常會以幾種形式送回 :
4-2 PTT 八卦板眾來源分佈 (ipstack.com) 4-3 IMDB API 4-4 Google Maps APIs (Google Geocoding/Places API) 4-5 Dcard API
5-1 儲存圖片與多媒體檔案
file system
5-2 儲存資料到 CSV 檔
save to CSV
5-3 儲存資料到資料庫 SQLite
Save SQlite
6-1 非 UTF-8 編碼的文件
6-2 XML 文件
7-1 處理表單及登入頁 :台灣高鐵時刻查詢 7-2 處理表單及登入頁 :Yelp 登入 7-3 使用WebDriver:台銀法拍屋資訊查詢 7-4 爬蟲程式經驗談:被封鎖的常見原因、常用 Header 欄位、網站隱藏欄位、使用代理伺服器
8-1 台股每日盤後資訊爬蟲及策略回測(量化投資) 8-2 電影評論情緒分析(中文自然語言處理與機器學習) 8-3 商品特價 Gmail 通知:Costco 商品網頁
附表 本書範例目標網站列表
附錄A 在 Mac 安裝Anaconda 開發環境
附錄B Python 爬蟲框架Scrapy 入門教學 B-1 Scrapy 環境安裝 B-2 簡易部落格爬蟲 B-3 Scrapy 系統架構 B-4 博客來網路書店爬蟲