iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 21
0
Software Development

初學者使用youtube影片學習python_純紀錄系列 第 21

Day21_初學者使用youtube影片學習python_純紀錄

  • 分享至 

  • xImage
  •  

參考資料

今天的內容是網路爬蟲的部分,以下附上網址:
https://www.youtube.com/watch?v=9Z9xKWfNo7k&list=PL-g0fdC5RMboYEyt6QS2iLb_1m7QcgfHk&index=20&t=1293s

影片內容

  1. 抓取特定網址的資料
    1.1 觀察想要抓取的網頁,取得網址
    1.2 利用開發人員工具,觀察網路連線細節 (Request Headers)
    1.3 建立 Request 物件,附加 Request Headers 設定。

  2. 解析 HTML 格式資料
    2.1 認識 PIP 套件管理工具
    2.2 利用 PIP 安裝第三方套件 BeautifulSoup
    2.3 利用 BeautifulSoup 解析並取得資料

  3. 實務操作:抓取 PTT 電影版的文章標題

學習紀錄

-抓取 PTT 電影版的網頁原始碼 (HTML)

import urllib.request as req
url="https://www.ptt.cc/bbs/movie/index.html"
with req.urlopen(url) as response:
    data=response.read().decode("utf-8")
print(data)

因為不像是正常使用者,因此被拒絕連線

-到網頁點選 F12 之後選 Network,之後再重新整理,index.html -> Headers -> Request Headers

import urllib.request as req
url="https://www.ptt.cc/bbs/movie/index.html"
# 建立一個 Request 物件,並附加一個 Request Headers 的資訊
request=req.Request(url, headers={
    "User-Agent":"Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"
})
with req.urlopen(request) as response:
    data=response.read().decode("utf-8")
print(data)

-解析原始碼,取得每篇文章的標題
-先安裝一下 beautifulsoup4,在 terminal 打上 pip install beautifulsoup4 即可
-若是有跳出 "You should consider upgrading..."的訊息,再打一次"python -m pip install --upgrade pip"進行更新即可

import bs4
root=bs4.Beautifulsoup(data,"html.parser")
titles=root.find_all("div", class_="title")  # 尋找 class="title" 的 div 標籤
for title in titles:
    if title.a !=None:   # 如果標題包含 a 標籤 (沒有被刪除),顯示出來
        print(title.a.string)

因為今天的內容是網路爬蟲,因此顯示出的內容會隨著時間改變,又因為python版本的不同也會讓爬蟲前置作業不盡相同,因此這次的內容我並沒有成功的解析標題,明天再重新研究和測試看看。


上一篇
Day20_初學者使用youtube影片學習python_純紀錄
下一篇
Day22_初學者使用youtube影片學習python_純紀錄
系列文
初學者使用youtube影片學習python_純紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言