2023-10-31|閱讀時間 ‧ 約 0 分鐘

【程式碼教學】追蹤自己 Vocus文章每日流量,第三版 1031


幾天不用,剛剛發現之前的程式碼已經不能使用了,我想可能是因為html結構有所改變,之前的程式碼可以看下面這一篇文章


【程式碼教學】追蹤自己 Vocus文章每日流量,第二版 1027



更新後的程式碼

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 str(views_str): # 將views_str轉為字串再進行檢查
return int(float(str(views_str).replace('K', '')) * 1000)
return int(views_str)

# 讀取HTML文件
with open('row20231031.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 eHOleU')

# 初始化儲存數據的列表
data = []

# 遍歷文章卡片元素
for article in articles:
# 提取標題
title_element = article.find('div', class_='articleManageCard__ArticleTitle-sc-1i8sb3r-6 itpSHA')
if title_element:
title = title_element.find('a').text.strip()
link = title_element.find('a')['href']
else:
title = "無標題"
link = "無連結"

# 提取愛心數
like_element = article.find('i', class_='icons__StyledIcon-sc-1nlg6xh-0 iUWfq icon-old-like-empty')
like = like_element.find_next('span', class_='iconCount__Count-sc-otd9xy-1 bgFJFP').text.strip() if like_element else 0

# 提取瀏覽量
view_element = article.find('i', class_='icons__StyledIcon-sc-1nlg6xh-0 iUWfq icon-old-eye')
view = view_element.find_next('span', class_='iconCount__Count-sc-otd9xy-1 bgFJFP').text.strip() if view_element else 0
view = parse_views(view) # 使用輔助函數解析瀏覽量字串

# 添加建立時間列
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} 文件。")



新程式碼改了哪些


如果喜歡我的程式碼,也歡迎大家多多贊助我,支持我的創作

我是凱文馬拉穆,我們下次見

我的贊助連結

付費訂閱
分享至
成為作者繼續創作的動力吧!
我是一隻馬拉穆,即將展開數位遊牧生活的奇幻旅程。這個全新的數位世界是如此充滿無限可能,我將遨遊於虛擬草原,踏著網絡之風,遇見來自世界各地的朋友。在這片廣袤的網絡草原上,我將學習新知識,激發靈感,與同類分享馴馬術,也將為大家帶來快樂和驚喜。數位遊牧,不僅是生活方式,更是一種心靈探索,讓我們一同踏上這趣味無窮的數位旅程!
© 2024 vocus All rights reserved.