【python 讀取抖音/小紅書/微博今日頭條/百度熱點等平臺的熱點新聞】

輕松獲取全網熱點,Python助你掌握實時輿情

在信息爆炸的時代,抖音、小紅書、微博、今日頭條和百度熱點等平臺每天都會產生海量熱門內容。無論是品牌營銷、競品分析還是輿情監控,掌握這些熱點新聞至關重要。利用Python的強大爬蟲技術,可以自動化抓取各平臺的熱點數據,實時追蹤話題趨勢,挖掘用戶關注焦點。

通過Python的高效爬取和數據分析能力,不僅能快速獲取結構化熱點信息,還能結合自然語言處理(NLP)進行情感分析,洞察公眾情緒變化。無論是企業決策、內容創作還是市場研究,這一技術都能提供精準的數據支持,讓你在信息戰中搶占先機!

代碼

# pip install beautifulsoup4
import requests
import random
from typing import Optional, List, Dict
from bs4 import BeautifulSoup# 平臺名稱映射
PLATFORMS = [{"name": "微博", "zhiwei_id": "weibo", "tophub_id": "s.weibo.com"},{"name": "抖音", "zhiwei_id": "douyin", "tophub_id": "douyin.com"},{"name": "嗶哩嗶哩", "zhiwei_id": "bilibili", "tophub_id": "bilibili.com"},{"name": "今日頭條", "zhiwei_id": "toutiao", "tophub_id": "toutiao.com"},{"name": "百度熱點", "zhiwei_id": "baidu", "tophub_id": "baidu.com"},{"name": "小紅書", "zhiwei_id": "little-red-book", "tophub_id": None},{"name": "快手", "zhiwei_id": "kuaishou", "tophub_id": None},{"name": "虎撲", "zhiwei_id": None, "tophub_id": "hupu.com"},{"name": "豆瓣小組", "zhiwei_id": None, "tophub_id": "douban.com"},{"name": "澎湃新聞", "zhiwei_id": None, "tophub_id": "thepaper.cn"},{"name": "知乎熱榜", "zhiwei_id": "zhihu", "tophub_id": "zhihu.com"},
]# 知微數據支持的平臺
ZHIWEI_PLATFORMS = [p["zhiwei_id"] for p in PLATFORMS if p["zhiwei_id"]]# tophub 支持的平臺
TOPHUB_PLATFORMS = [p["tophub_id"] for p in PLATFORMS if p["tophub_id"]]def get_zhiwei_hotnews(platform: str) -> Optional[List[Dict]]:"""獲取知微數據的熱點數據參數 platform: 平臺標識 (weibo, douyin, bilibili, toutiao, baidu, little-red-book, kuaishou, zhihu)返回格式: 列表數據,每個元素為熱點條目字典,僅包含 name, rank, lastCount, url"""api_url = f"https://trends.zhiweidata.com/hotSearchTrend/search/longTimeInListSearch?type={platform}&sortType=realTime"  # noqa 501try:headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",  # noqa 501"Referer": "https://trends.zhiweidata.com/",}response = requests.get(api_url, headers=headers, timeout=10)response.raise_for_status()data = response.json()if data.get("state") and isinstance(data.get("data"), list):return [{"name": item.get("name", ""),"rank": item.get("rank", 0),"lastCount": item.get("lastCount", 0),"url": item.get("url", ""),}for item in data["data"]]return Noneexcept Exception as e:  # noqa 841return Nonedef get_tophub_hotnews(platform: str, cnt: int = 10) -> Optional[List[Dict]]:"""獲取 tophub.today 的熱點數據參數 platform: 平臺名稱(中文,如“微博”)參數 tophub_id: tophub.today 的平臺標識(如 s.weibo.com, zhihu.com)參數 cnt: 返回的新聞數量返回格式: 列表數據,每個元素為熱點條目字典,包含 name, rank, lastCount"""api_url = "https://tophub.today/"try:headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",  # noqa 501}response = requests.get(api_url, headers=headers, timeout=10)response.raise_for_status()soup = BeautifulSoup(response.text, "html.parser")platform_divs = soup.find_all("div", class_="cc-cd")for div in platform_divs:platform_span = div.find("div", class_="cc-cd-lb").find("span")if platform_span and platform_span.text.strip() == platform:news_items = div.find_all("div", class_="cc-cd-cb-ll")[:cnt]hotnews = []for item in news_items:rank = item.find("span", class_="s").text.strip()title = item.find("span", class_="t").text.strip()engagement = item.find("span", class_="e")last_count = engagement.text.strip() if engagement else "0"hotnews.append({"name": title,"rank": int(rank),"lastCount": last_count,"url": item.find("a")["href"] if item.find("a") else "",})return hotnewsreturn Noneexcept Exception as e:  # noqa 841return Nonedef get_vvhan_hotnews() -> Optional[List[Dict]]:"""獲取 vvhan 的熱點數據(作為備用)返回格式: [{"name": platform_name, "data": [...]}, ...]"""api_url = "https://api.vvhan.com/api/hotlist/all"try:response = requests.get(api_url, timeout=10)response.raise_for_status()data = response.json()if data.get("success") and isinstance(data.get("data"), list):return data["data"]return Noneexcept Exception as e:  # noqa 841return Nonedef get_platform_news(platform: str, cnt: int = 10) -> List[str]:"""獲取指定平臺的新聞標題,優先從知微數據獲取,失敗則從 tophub.today 獲取,最后從 vvhan 獲取參數 platform: 平臺名稱(中文,如“微博”)參數 cnt: 返回的新聞數量返回: 新聞標題列表(僅使用 name 字段)"""# 查找平臺對應的知微數據標識和 tophub 標識platform_info = next((p for p in PLATFORMS if p["name"] == platform), None)if not platform_info:return []# 1. 優先嘗試知微數據if platform_info["zhiwei_id"] in ZHIWEI_PLATFORMS:hotnews = get_zhiwei_hotnews(platform_info["zhiwei_id"])if hotnews:return [item.get("name", "") for item in hotnews[:cnt] if item.get("name")]# 2. 回退到 tophub.todayif platform_info["tophub_id"] in TOPHUB_PLATFORMS:hotnews = get_tophub_hotnews(platform, cnt)if hotnews:return [item.get("name", "") for item in hotnews[:cnt] if item.get("name")]# 3. 回退到 vvhan APIhotnews = get_vvhan_hotnews()if not hotnews:return []platform_data = next((pf["data"] for pf in hotnews if pf["name"] == platform), [])return [item["title"] for item in platform_data[:cnt]]def select_platform_topic(platform: str, cnt: int = 10) -> str:"""獲取指定平臺的新聞話題,并按排名加權隨機選擇一個話題。若無話題,返回默認話題。參數 platform: 平臺名稱(中文,如“微博”)參數 cnt: 最大返回的新聞數量返回: 選中的話題字符串"""topics = get_platform_news(platform, cnt)if not topics:topics = ["歷史上的今天"]print(f"平臺 {platform} 無法獲取到熱榜,接口暫時不可用,將使用默認話題。")# 加權隨機選擇:排名靠前的話題權重更高weights = [1 / (i + 1) ** 2 for i in range(len(topics))]selected_topic = random.choices(topics, weights=weights, k=1)[0]# 替換標題中的 | 為 ——selected_topic = selected_topic.replace("|", "——")return selected_topic
topics = get_platform_news("小紅書", 50)
topics

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85356.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85356.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85356.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【1.3 MySQL知識庫 - 輕松理解版】

🚀 MySQL知識庫 - 輕松理解版 一、MySQL核心知識順口溜 🎵 🎤 經典記憶口訣 MySQL數據庫,InnoDB引擎強 ACID事務特性,隔離級別四檔 索引加速查詢,B樹是主梁 主從復制備份,讀寫分離扛 鎖機制防…

計算機網絡期末速成 網絡層 判斷及單選題

判斷題 路由器和鏈路層交換機都被稱為分組交換機。路由器與鏈路層交換機間的根本區別是:路由器在網絡層存儲轉發IP數據報,鏈路層交換機在鏈路層存儲轉發幀。 A. 對 B. 錯 答案: 對 解析: 路由器和鏈路層交換機確實都是分組交換機,但工作層次不同。路由器…

代理 AI 時代的隱私重構:從邊界控制到信任博弈

過去,我們將隱私等同于邊界與權限控制,依賴墻壁、鎖和規則構筑防線。而如今,隨著代理 AI 深度介入生活,成為能感知、決策的自主實體,它不僅處理數據,更在重塑我們的數字形象與內在認知。在此背景下&#xf…

C++實現手寫strstr函數

strstr 函數用于在主字符串中查找子字符串的首次出現位置,以下是高效的實現方案: KMP算法優化版本 #include <iostream> #include <string> #include <vector> using namespace std; // 計算KMP算法的部分匹配表(PMT) vector<int> getNext(const…

Linux操作系統網絡服務模塊一SSH帶外管理概述

前言&#xff1a; 在復雜的網絡運維環境中&#xff0c;?SSH帶外管理&#xff08;Out-of-Band Management&#xff09;?? 是確保系統高可用性的核心技術手段。區別于依賴業務網絡的“帶內管理”&#xff0c;帶外管理通過獨立物理通道?&#xff08;如專用管理網口或串…

org.springframework.cloud.gateway 組件解釋

org.springframework.cloud.gateway 是 Spring Cloud 生態系統中的一個新一代的、功能強大的 API 網關。 1. 什么是 API 網關 (API Gateway)&#xff1f; 在講解 Spring Cloud Gateway 之前&#xff0c;我們先要理解它扮演的角色——API 網關。 在一個微服務架構中&#xff0…

linux ollama 下載安裝

linux ollama 下載安裝 ollama 下載地址ollama 手動安裝解決找不到命令的問題升級[gcc](https://so.csdn.net/so/search?qgcc&spm1001.2101.3001.7020)Centos7 停止維護之后 [升級gcc||找不到devtoolset-8-gcc* 問題解決方案](https://www.cnblogs.com/Jedi-Pz/p/18447117…

2025 滲透工具:【中國蟻劍】連接一句話MUA文件 遠控虛擬機靶機

溫馨提示&#xff1a; 本程序僅作為虛擬機測試環境使用&#xff0c;請勿用于任何不當用途。使用即表示您同意自行承擔可能產生的所有責任。 一、場景復現 1、PhpMystudy軟件啟動網頁模擬靶機 小皮面板(phpstudy) - 讓天下沒有難配的服務器環境&#xff01; 2、開啟apache 3、…

Datawhale 網絡爬蟲技術入門第2次筆記

正則表達式 正則表達式&#xff08;Regular Expression&#xff09;&#xff0c;?種使?表達式的?式對字符串進?匹配的語法規則。 正則的語法&#xff1a;使?元字符進?排列組合來匹配字符串。 在線測試正則表達式&#xff1a;在線正則表達式測試OSCHINA.NET在線工具,os…

詳解Redis的集群模式(主從復制、哨兵與Cluster)

一、主從復制 (Master-Slave Replication) 1. 基本概念 主從復制是Redis最簡單的集群模式&#xff0c;由一個主節點(Master)和一個或多個從節點(Slave)組成。 2. 工作原理 數據同步&#xff1a;從節點啟動時會向主節點發送SYNC命令&#xff0c;主節點執行BGSAVE生成RDB文件并…

如何使用 Airtest 對 Flutter 和 Unity 應用進行UI自動化測試

使用 Airtest 進行 Flutter/Unity UI 自動化測試終極指南 一、 核心原理&#xff1a;為什么 Airtest 能行&#xff1f; 要理解如何用&#xff0c;先要明白其原理。Airtest 采取了“兩條腿走路”的策略&#xff0c;這正是它能通吃各種UI技術的關鍵。 第一條腿&#xff1a;基于…

河馬劇場多部自制劇霸榜,短劇精品化戰略持續推進

臨近暑期&#xff0c;短劇市場熱度逐漸攀升。近期&#xff0c;DataEye發布6月9日—6月15日微短劇熱力榜顯示河馬劇場以8部作品占據TOP30近三分之一席位&#xff0c;前三名中更是占據2個席位&#xff0c;以題材多元化、用戶覆蓋廣、數據爆發力強的特點引領行業風向。其中&#x…

冪級數 (0,R); R ;(R,+oo)

很好&#xff0c;我們現在來回答你問的這個問題&#xff1a; &#x1f7e0; 冪級數在收斂半徑 R R R 以外會發生什么&#xff1f; 我們考慮一個一般形式的冪級數&#xff1a; ∑ n 0 ∞ a n ( x ? x 0 ) n \sum_{n0}^{\infty} a_n (x - x_0)^n n0∑∞?an?(x?x0?)n 它的…

C#學習13——正則表達式

一、正則表達式 是一種匹配輸入文本的模式&#xff0c;是由特殊字符組成&#xff0c;用于匹配字符串中的字符組合。 二、正則表達式有哪些&#xff1f; 1.Regex 類&#xff08;引入System.Text.RegularExpressions;&#xff09; Regex 類用于表示一個正則表達式。 1&#…

【Redis】持久化機制:RDB / AOF 的應用與場景

文章目錄 Redis 持久化一、RDB1.1 說明1.2 觸發機制手動觸發自動觸發 1.3 流程說明1.4 文件處理1.5 優缺點 & 適用場景 二、AOF2.1 說明2.2 使用 AOF2.3 命令寫入2.4 文件同步2.5 重寫機制2.6 啟動時數據恢復2.7 優缺點 & 適用場景 三、不使用 AOF / RDB 的情況3.1 場景…

Python 企業級開發與DevOps實踐

https://www.python.org/static/community_logos/python-logo-master-v3-TM.png 大型項目結構與設計模式 項目結構規范 text 復制 下載 enterprise_app/ ├── docs/ # 項目文檔 ├── tests/ # 測試代碼 │ ├── unit/ …

E結構體基礎.go

前言&#xff1a;結構體是一種用戶自定義的數據類型&#xff0c;它可以將多個不同類型的數據整合在一起&#xff0c;形成一個有機的整體。這就好比在現實生活中&#xff0c;我們有各種各樣的物品&#xff0c;它們各自有不同的屬性和用途&#xff0c;而結構體就像是一個收納箱&a…

Spring @Autowired 依賴注入全解析

Autowired 是 Spring 框架中實現依賴注入的核心注解&#xff0c;其自動裝配過程可分為以下步驟&#xff0c;結合了類型匹配、名稱解析和容器協作機制&#xff1a; 1. 組件掃描與 Bean 定義注冊 掃描階段&#xff1a;Spring 容器啟動時&#xff0c;通過 ComponentScan 或 XML 配…

將git的普通目錄用idea初始化為maven項目

在 IntelliJ IDEA 中將一個已存在的 Git 目錄初始化為 Maven 項目&#xff0c;可以通過以下步驟完成。這些步驟假設你已經有一個包含代碼的 Git 倉庫&#xff0c;并希望將其轉換為 Maven 項目結構&#xff0c;以便更好地管理依賴和構建。 步驟 1&#xff1a;打開或導入 Git 倉庫…

Vue 中 key 屬性的深入解析:改變 key 導致組件銷毀與重建

一、key 屬性的核心作用 在 Vue 中,key是一個特殊的屬性,主要用于協助 Vue 的虛擬 DOM(Virtual DOM)算法高效地更新實際 DOM。它的核心作用可以概括為: 唯一標識節點:為每個節點提供一個唯一的身份標識優化 Diff 算法:幫助 Vue 準確判斷兩個節點是否為同一節點(如for循…