Example / 4 Oct 2026 to 31 Oct 2026
What repeated sampling of hot lists shows, 4 to 31 Oct 2026
Machine-built, not yet reviewed
The question this answers for a buyer
The exact question and range
Across the Baidu, Weibo and Tencent WeChat hot lists between 2026-10-04 and 2026-10-31, how long do topics stay on a list, how many appear in only one collection window, and how many appear on more than one platform?
- Date range
- 2026-10-04 to 2026-10-31, inclusive
- Frozen
- 2026-11-02 01:46 UTC
- Records
- 9,618
Result
15,087 observations pulled collapse to 9,618 platform-topic pairs. 67.7% appeared in only one collection window, so a single current ranking shows the topic but not whether it will last, or whether it already had. 26 normalized titles appeared on all three platforms.
- Topics seen in only one collection window (all platforms)67.7% (6510 of 9618)A collection window is a run of observations with no gap over 30 minutes.
- Baidu: topics seen in one collection window61.8% (2253 of 3647)107 collection windows in the pulled data.
- Baidu: median lifespan0.0 hoursFirst to last observation, counting one-window topics as 0. Among topics seen in 2+ windows: 4.5 hours.
- Weibo: topics seen in one collection window88.2% (4124 of 4678)107 collection windows in the pulled data.
- Weibo: median lifespan0.0 hoursFirst to last observation, counting one-window topics as 0. Among topics seen in 2+ windows: 4.5 hours.
- Tencent WeChat: topics seen in one collection window10.3% (133 of 1293)107 collection windows in the pulled data.
- Tencent WeChat: median lifespan11.5 hoursFirst to last observation, counting one-window topics as 0. Among topics seen in 2+ windows: 11.5 hours.
- Longest persistence: 这些关于中风的误区,不要再信了!10 windows over 2 daysTencent WeChat; best rank 11; 25.3 hours between first and last seen.
- Longest persistence: 我国将加强困难老人探访关爱10 windows over 2 daysTencent WeChat; best rank 8; 22.5 hours between first and last seen.
- Longest persistence: 致敬冼星海:把家国写进音符10 windows over 2 daysTencent WeChat; best rank 2; 22.5 hours between first and last seen.
- Longest persistence: 两个人的婚礼变成一群人的狂欢9 windows over 2 daysTencent WeChat; best rank 2; 21.8 hours between first and last seen.
- Longest persistence: 官方介绍五中全会最重要成果9 windows over 2 daysTencent WeChat; best rank 1; 21.8 hours between first and last seen.
- Exact-title overlap: Baidu and Weibo162Topics with an identical normalized title on both. Exact matching undercounts: one event is usually worded differently on each platform.
- Exact-title overlap: Baidu and Tencent WeChat629Topics with an identical normalized title on both. Exact matching undercounts: one event is usually worded differently on each platform.
- Exact-title overlap: Weibo and Tencent WeChat46Topics with an identical normalized title on both. Exact matching undercounts: one event is usually worded differently on each platform.
- Exact-title overlap: all three platforms26Identical normalized title on every platform.
Reproduce the documented result
One anonymous request with a fixed date range and at most 100 rows. Running it returns the rows counted below; the digest is the SHA-256 of their sorted ids joined by a newline.
curl -sS 'https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100'- Request
- Weibo topics on 2026-10-31 (mode=topics)
- Rows returned
- 100
- ids_sha256
930f957acab0eb55e7e2da3b7c5c795a318f3ac71e17426d5656d24b226b32f6- Further pages
- Yes. The documented result is this first page only.
import hashlib
import requests
items = requests.get("https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100", timeout=60).json()["items"]
digest = hashlib.sha256("\n".join(sorted(i["id"] for i in items)).encode()).hexdigest()
print(len(items), digest) # documented: 100 930f957acab0eb55e7e2da3b7c5c795a318f3ac71e17426d5656d24b226b32f6Records
The first 25 of 9,618 records. The complete set is in the CSV.
| Platform | Topic | First seen | Last seen | Windows | Days | Best rank |
|---|---|---|---|---|---|---|
| Tencent WeChat | 这些关于中风的误区,不要再信了! | 2026-10-30 06:01 UTC | 2026-10-31 07:17 UTC | 10 | 2 | 11 |
| Tencent WeChat | 我国将加强困难老人探访关爱 | 2026-10-30 08:49 UTC | 2026-10-31 07:17 UTC | 10 | 2 | 8 |
| Tencent WeChat | 致敬冼星海:把家国写进音符 | 2026-10-30 08:49 UTC | 2026-10-31 07:17 UTC | 10 | 2 | 2 |
| Tencent WeChat | 两个人的婚礼变成一群人的狂欢 | 2026-10-30 06:01 UTC | 2026-10-31 03:49 UTC | 9 | 2 | 2 |
| Tencent WeChat | 官方介绍五中全会最重要成果 | 2026-10-30 06:01 UTC | 2026-10-31 03:49 UTC | 9 | 2 | 1 |
| Tencent WeChat | 中国第一个15万亿大省要来了 | 2026-10-30 10:31 UTC | 2026-10-31 07:17 UTC | 9 | 2 | 10 |
| Tencent WeChat | 11月起这些新规将影响生活 | 2026-10-30 02:31 UTC | 2026-10-31 01:26 UTC | 8 | 2 | 1 |
| Tencent WeChat | 别把易怒多疑当“怪脾气” | 2026-10-30 02:31 UTC | 2026-10-31 01:26 UTC | 8 | 2 | 4 |
| Tencent WeChat | 欧洲车市变天! | 2026-10-30 10:31 UTC | 2026-10-31 06:00 UTC | 8 | 2 | 11 |
| Tencent WeChat | 铁路车次编排大调整 | 2026-10-30 10:31 UTC | 2026-10-31 06:00 UTC | 8 | 2 | 13 |
| Tencent WeChat | 60秒看前海博物馆建设全过程 | 2026-10-30 08:49 UTC | 2026-10-31 03:49 UTC | 8 | 2 | 6 |
| Tencent WeChat | “离柜概不负责”不能单向约束储户 | 2026-10-30 14:01 UTC | 2026-10-31 07:17 UTC | 8 | 2 | 11 |
| Tencent WeChat | 从三个“新”看前三季度全国能源形势 | 2026-10-30 14:01 UTC | 2026-10-31 07:17 UTC | 8 | 2 | 9 |
| Tencent WeChat | 共享单车悄悄变贵 | 2026-10-30 14:01 UTC | 2026-10-31 07:17 UTC | 8 | 2 | 15 |
| Tencent WeChat | 解放军霸气喊话菲军机:别让他耍滑头 | 2026-10-30 14:01 UTC | 2026-10-31 07:17 UTC | 8 | 2 | 6 |
| Tencent WeChat | 国内航线燃油附加费再上涨 | 2026-10-30 19:00 UTC | 2026-10-31 10:31 UTC | 8 | 1 | 3 |
| Tencent WeChat | 高校学院大洗牌 | 2026-10-30 19:00 UTC | 2026-10-31 10:31 UTC | 8 | 1 | 4 |
| A股 | 2026-10-12 06:03 UTC | 2026-10-30 10:31 UTC | 7 | 5 | 13 | |
| 嫁金钗 | 2026-10-10 14:02 UTC | 2026-10-20 06:00 UTC | 7 | 7 | 9 | |
| Tencent WeChat | “未来中国优秀超市不会是胖东来” | 2026-10-29 07:26 UTC | 2026-10-30 06:01 UTC | 7 | 2 | 10 |
| Tencent WeChat | 商务部回应“美将中企列入实体清单” | 2026-10-29 07:26 UTC | 2026-10-30 06:01 UTC | 7 | 2 | 8 |
| Tencent WeChat | 曾经风靡的日系车不再吃香了 | 2026-10-30 06:01 UTC | 2026-10-31 02:30 UTC | 7 | 2 | 11 |
| Tencent WeChat | 多地取消12345热线0差评考核 | 2026-10-30 02:31 UTC | 2026-10-30 22:01 UTC | 7 | 2 | 4 |
| Tencent WeChat | 中国驻西班牙使馆驳斥涉疆议案 | 2026-10-31 03:49 UTC | 2026-10-31 22:00 UTC | 7 | 2 | 9 |
| Tencent WeChat | 国安部披露“黑飞”侵入军机航线 | 2026-10-31 03:49 UTC | 2026-10-31 22:00 UTC | 7 | 2 | 3 |
Sources
- China Snapshot public datasets API (social) — Repeated observations of publisher hot lists.
- Baidu: Baidu Top Realtime — 5457 observations pulled
- Weibo: Weibo Hot Search — 5350 observations pulled
- Tencent WeChat: Tencent WeChat Hot Topics — 4280 observations pulled
Known gaps
- The reproducible request returns the first 100 rows of a longer result (the API answered with next_cursor). result.row_count and result.ids_sha256 describe exactly that response, not the longer result.
- A topic is identified by its normalized title (leading rank and extra whitespace removed, Unicode NFKC). A story reworded between collections counts as a new topic, so persistence is understated; exact-title overlap across platforms is likewise a floor.
- Collection windows are inferred from observation timestamps (a gap over 30 minutes starts a new window). Missed or failed collection runs make topics look shorter-lived than they were.
- Topics on the list when the range opens, or at the cap boundary, are cut off on the left, so their first_seen is not when they first trended.
- Date filters use UTC; distinct days are counted on the Beijing calendar (UTC+8).
- Rank and heat are the platforms' own and are not comparable across platforms. Observing a topic is not evidence of public opinion, and attention here is not linked to any policy publication.
- The API's list links can open platform searches rather than the original post, and the list is a sample of what the platforms ranked at collection times, not a continuous feed.
Every request behind the figures
These are the exact anonymous requests used. Responses are paged at 100 rows by following next_cursor; the 149 follow-up page URLs, which carry short-lived signed cursors, are listed in the JSON evidence. Keep to one request a second.
# social source names
curl -s "https://china-snapshot.com/api/datasets?dataset=social&limit=1"
# Baidu observations
curl -s "https://china-snapshot.com/api/datasets?dataset=social&source=Baidu%20Top%20Realtime&from=2026-10-04&to=2026-10-31&limit=100"
# Weibo observations
curl -s "https://china-snapshot.com/api/datasets?dataset=social&source=Weibo%20Hot%20Search&from=2026-10-04&to=2026-10-31&limit=100"
# Tencent WeChat observations
curl -s "https://china-snapshot.com/api/datasets?dataset=social&source=Tencent%20WeChat%20Hot%20Topics&from=2026-10-04&to=2026-10-31&limit=100"
# reproducible request: Weibo topics on 2026-10-31 (mode=topics)
curl -s "https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100"import time
from urllib.parse import quote
import pandas as pd
import requests
URLS = [
"https://china-snapshot.com/api/datasets?dataset=social&source=Baidu%20Top%20Realtime&from=2026-10-04&to=2026-10-31&limit=100", # Baidu observations
"https://china-snapshot.com/api/datasets?dataset=social&source=Weibo%20Hot%20Search&from=2026-10-04&to=2026-10-31&limit=100", # Weibo observations
"https://china-snapshot.com/api/datasets?dataset=social&source=Tencent%20WeChat%20Hot%20Topics&from=2026-10-04&to=2026-10-31&limit=100", # Tencent WeChat observations
"https://china-snapshot.com/api/datasets?dataset=social&mode=topics&source=Weibo%20Hot%20Search&from=2026-10-31&to=2026-10-31&limit=100", # reproducible request: Weibo topics on 2026-10-31 (mode=topics)
]
rows = []
for first_url in URLS:
url = first_url
while url:
page = requests.get(url, timeout=60).json()
rows += page["items"]
cursor = page.get("next_cursor")
url = f"{first_url}&cursor={quote(cursor)}" if cursor else None
time.sleep(1) # anonymous limit: 60 requests a minute
df = pd.DataFrame(rows)
if "id" in df: df = df.drop_duplicates("id")
print(len(df), "rows")
# Or load the frozen evidence file without calling the API:
evidence = pd.read_csv("https://china-snapshot.com/data/examples/historical-attention.csv")Download the evidence
The JSON holds the question, every request URL, known gaps and up to 500 rows. The CSV holds the full row set.
Method
- The reproducible request (Weibo topics on 2026-10-31 (mode=topics)) is one fixed-range page of at most 100 rows; result.row_count and result.ids_sha256 are computed from exactly its response. The figures below come from the wider pull.
- Read the source names the API reports for dataset=social and match one per platform (Baidu, Weibo, Tencent WeChat).
- For each platform, page every observation in the range at 100 rows by following next_cursor (capped, see known gaps).
- Normalize each title: strip a leading rank such as '12. ', collapse whitespace, apply Unicode NFKC. The original-language title is used when present.
- Group by (platform, normalized topic). first_seen and last_seen are the earliest and latest observation; collection_windows counts distinct collection windows; distinct_days counts Beijing calendar days; best_rank is the lowest rank observed.
- Median lifespan is last_seen minus first_seen in hours, per platform, with single-window topics counted as zero.
- Cross-platform overlap is the set intersection of normalized titles. The CSV holds every (platform, topic) row; raw observations are not republished here.