iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
Python

一些Python可以做的事系列 第 17

[Python]下載微信(wechat)公眾號內文章的照片

  • 分享至 

  • xImage
  •  

繼續上一篇保存文章文字內容,這一篇我稍微做更改,改成保存文章內的照片,其實步驟大同小異,只要找出照片在哪個 html 內,他的屬性是什麼,去做更改就可完成

實作 : 下載微信(wechat)公眾號內文章的照片

跟上篇一樣的查詢網址步驟 :

首先我們要下載wechat電腦端(我使用 window 系統)大家可以根據自己電腦系統去下載。下載完後登入自己wechat帳號。

接下來,找一個公眾號內的文章 ( 以鄧超工作室內最新文章為例)
!https://ithelp.ithome.com.tw/upload/images/20240826/20168345xmooI0LoEg.png

再來,點擊瀏覽器icon他會跳到你電腦預設的瀏覽器內
https://ithelp.ithome.com.tw/upload/images/20240826/20168345In5guYd4f4.png

此時你就可以知道這篇文章的網址了 !

步驟 :

  1. 發送請求並獲取頁面內容
  2. 解析頁面內容
  3. 查找和提取標題
  4. 根據標題創建一個文件夾,用於保存下載的圖片
  5. 查找所有圖片
  6. 下載圖片到本地端

完整程式碼

import requests  # 用於發送 HTTP 請求
import os        # 用於創建目錄和處理文件系統
from bs4 import BeautifulSoup  # 用於解析 HTML 內容

# 網頁 URL
url = 'https://mp.weixin.qq.com/s/B0URjghrolg7HWVcZNUH5Q'

# 發送請求並獲取頁面內容
response = requests.get(url)
web_content = response.text

# 使用 BeautifulSoup 解析 HTML 內容,以查找和提取需要的元素    
# 解析頁面內容
soup = BeautifulSoup(web_content, 'html5lib')

# 查找 h1 標籤並提取標題
title_element = soup.find('h1', id='activity-name')
if title_element:
    title = title_element.get_text(strip=True)  # 擷取標題文字並去除前後空白
    print(f'標題: {title}')
else:
    print('沒有找到標題')

# 創建文件夾,以保存圖片
if not os.path.exists(title):
    os.makedirs(title)

# 查找所有 img 標籤
img_elements = soup.find_all('img')

# 下載圖片
for index, img in enumerate(img_elements):
    # 提取 data-src 屬性中的 URL,若沒有則嘗試 src 屬性
    img_url = img.get('data-src') or img.get('src')

    if img_url:
        print(f'圖片 {index + 1} URL: {img_url}')
        response = requests.get(img_url, stream=True)  # 以stream模式下載圖片
        if response.status_code == 200:
            # 保存圖片到本地文件夾
            with open(f'{title}/pic_{index + 1}.jpg', 'wb') as file:
                for chunk in response.iter_content(chunk_size=8192):
                    file.write(chunk)
            print(f'圖片 {index + 1} 下載完成')
        else:
            print(f'圖片 {index + 1} 下載失敗,狀態碼: {response.status_code}')
    else:
        print(f'圖片 {index + 1} 沒有有效的 URL')

圖示 :

https://ithelp.ithome.com.tw/upload/images/20240826/20168345miO24IsReS.png


上一篇
[Python]下載微信(wechat)公眾號的文章文字內容
下一篇
[Python] 自動登入微博
系列文
一些Python可以做的事19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言