環境

windows版本:Windows 10 專業版 20H2

python版本:3.10.0

pip 版本(為Python內建的套件管理):

模組、套件:

urllib

是一個用來從URLs (Uniform Resource Locators)取得資料的Python模組。

PIP

pip是一個以Python電腦程式語言寫成的軟體包管理系統,他可以安裝和管理軟體包,另外不少的軟體包也可以在「Python軟體包索引」中找到。 許多Python的發行版中已經預裝了pip。

Python Beautifulsoup4

借助網頁的結構特性來解析網頁的工具,只需要簡單的幾條指令就可以提取HTML標籤裡的元素。

基本流程

  1. 引用 urllib.request 模組
  2. 以 urlopen() 函式模擬瀏覽器,向目標網址建立連線:傳送要求 (Request) 和參數給網站伺服器,並且接收網站伺服器的回應 (Response)
  3. 使用 with 關鍵字實作,依照不同檔案格式以不同語法讀取 Response

※備註:盡可能模仿真實使用者

import urllib.request as Request
with Request.urlopen(網址) as Response:
    # 依照不同檔案格式讀取 Response

格式分析處理

HTML 格式

import urllib.request as req
with req.urlopen(網址) as res:
    page_data = res.read().decode("utf-8")    # 以一般文字格式,讀取「網站伺服器的回應」,使用萬國碼utf-8
print(page_data)

使用beautifulsoup解析HTML並處理

安裝

pip install beautifulsoup4

使用 beautifulsoup

from bs4 import BeautifulSoup

soup = BeautifulSoup(page_data,"html.parser") #將網頁資料以html.parser解析
sel = soup.select("div.title a") #取HTML標中的 <div class="title"></div> 中的<a>標籤存入sel

JSON 格式

import json
with req.urlopen(網址) as res:
    page_data = json.loads(res.read().decode("utf-8"))    # 以 JSON 格式,轉換 從讀取「網站伺服器的回應」
print(page_data)

json.loads(res):回傳 List、字典資料格式。

參考或引用資料:

Day-1 Python爬蟲小人生(1):https://ithelp.ithome.com.tw/articles/10202121

[Python教學]Request和BeautifulSoup爬蟲教學,初學者也可以馬上學會!:https://zx2515296964.medium.com/python-%E6%95%99%E5%AD%B8-%E7%B0%A1%E5%96%AE%E5%B9%BE%E6%AD%A5%E9%A9%9F-%E8%AE%93%E4%BD%A0%E8%BC%95%E9%AC%86%E7%88%AC%E8%9F%B2-928a816051c1

[Python爬蟲教學]7個Python使用BeautifulSoup開發網頁爬蟲的實用技巧:https://www.learncodewithmike.com/2020/02/python-beautifulsoup-web-scraper.html

[Python爬蟲教學]Python網頁爬蟲動態翻頁的實作技巧:https://www.learncodewithmike.com/2020/06/how-to-scrape-different-pages-using-python-scraper.html

如何使用urllib套件取得網路資源:https://docs.python.org/zh-tw/3/howto/urllib2.html

Python 自學第十三天:取得網路公開資料 Open Data:https://jenifers001d.github.io/2019/12/17/Python/learning-Python-day13/

Python 網路連線程式、公開資料串接 By 彭彭:https://youtu.be/sUzR3QVBKIo

Steven玄

謝謝您觀看本站內容!! 😅 西元93年台灣男,軟體前、後、資料庫工程師 和 多元收入實踐,程式設計、網站系統規劃、商業策略分析規劃、多元收入研究,目前在網站開發公司擔任工程師。

發佈留言