剛剛發現之前的程式碼已經不能使用了,我想可能是因為html結構有所改變,另外也想順便處理一下數字如果是含有"K"的數字時,順便轉化一下,時間有限,所以想知道來龍去脈請看下面文章。
https://vocus.cc/article/6530d297fd89780001a7fe33
線上 colab版本我之後會再修改,以下先給大家我修改後的程式碼。因為時間有限我只改了內容作品管理的版本,另外我將想法寫在結論
import csv
from bs4 import BeautifulSoup
from datetime import datetime
# 獲取當前日期和時間
current_datetime = datetime.now()
formatted_datetime = current_datetime.strftime("%Y%m%d%H%M")
# 輔助函數:將數字"K"格式的瀏覽量轉換為整數
def parse_views(views_str):
if 'K' in views_str:
return int(float(views_str.replace('K', '')) * 1000)
return int(views_str)
# 讀取HTML文件
with open('row20231027.html', 'r', encoding='utf-8') as file:
html = file.read()
# 創建Beautiful Soup對象
soup = BeautifulSoup(html, 'html.parser')
# 尋找文章卡片元素
articles = soup.find_all('div', class_='articleManageCard__CardWrapper-sc-1i8sb3r-0 eNoxEh')
# 初始化儲存數據的列表
data = []
# 遍歷文章卡片元素
for article in articles:
# 提取標題
title_element = article.find('div', class_='articleManageCard__ArticleTitle-sc-1i8sb3r-6 daceHB')
if title_element:
title = title_element.find('a').text.strip()
link = title_element.find('a')['href']
else:
title = "無標題"
link = "無連結"
# 提取愛心數
like_element = article.find('div', class_='iconCount__IconCountWrapper-sc-otd9xy-0 dWpZNq')
like = like_element.find('span', class_='iconCount__Count-sc-otd9xy-1 ipDLhO').text.strip() if like_element else 0
# 提取瀏覽量
view_element = article.find_all('div', class_='iconCount__IconCountWrapper-sc-otd9xy-0 dWpZNq')
view_span = view_element[-1].find('span', class_='iconCount__Count-sc-otd9xy-1 ipDLhO') if view_element else None
view = parse_views(view_span.text.strip()) if view_span else 0
# 添加建立時間列
created_time = current_datetime.strftime("%Y-%m-%d-%H-%M")
# 將提取的數據添加到列表
data.append([title, link, like, view, created_time])
# 將數據保存到CSV文件,使用帶有當前日期和時間的文件名
csv_filename = f"{formatted_datetime}_articles.csv"
with open(csv_filename, 'w', newline='', encoding='utf-8') as csv_file:
writer = csv.writer(csv_file)
# 添加CSV文件標題行
writer.writerow(["文章標題", "文章連結", "愛心數", "瀏覽量", "建立時間"])
# 寫入數據行
for row in data:
writer.writerow(row)
print(f"數據已保存到 {csv_filename} 文件。")
寫這種程式碼最有趣的地方就在於你需要根據網路架構更新修改你的版本。同時我也在構思要將這個服務改成數位商品的方式,分享給有需要的朋友,如果有興趣的人,或是希望新增什麼樣服務的格友,歡迎大家在下方留言或是透過ig 聯絡我
如果喜歡我的程式碼,也歡迎大家多多贊助我,支持我的創作
我是凱文馬拉穆,我們下次見