API Douban Recensioni
Stato di salute dell'API
- Operatività nelle ultime 24 ore
- Normale
- Buono / normale
- Disponibile
- Limitato
- Quasi del tutto inattivo
Ultime 24 ore
Ultimi 30 giorni
Leggi le recensioni lunghe di Douban su un film, un libro o un album dal link della scheda. Ogni recensione include titolo, testo, etichetta di valutazione, autore e numero di risposte. Ogni valutazione appartiene alla propria recensione. Il batch non contiene sempre tutte le recensioni del titolo.
Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su douban e action impostato su reviews. Prezzo $24 per 1.000 richieste ($0.024 per chiamata). Le chiamate non riuscite e i risultati vuoti non vengono addebitati. Ogni riga richiesta conta come una chiamata: limit determina l'addebito in anticipo e gli addebiti per le righe non restituite vengono rimborsati. Sincrona. Per i job più lenti, aggiungi "mode": "async" al corpo della richiesta, recupera il job_id ed esegui il polling.
Prompt per l'AI
#Aiutami a scrivere uno script di raccolta dei dati con l'endpoint Douban Recensioni di EveryInfra (douban/reviews).
Come funziona l'endpoint:
- Richiesta: POST https://api.everyinfra.com/api/v1/social con l'header Authorization: Bearer <chiave API>. Leggi la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY e non scriverla mai direttamente nel codice.
- Nel corpo della richiesta imposta platform su douban e action su reviews, e inserisci i parametri in params.
- Parametri obbligatori:
- url: Specifica l'URL del soggetto nel formato /subject/<ID>/ su movie.douban.com, book.douban.com o music.douban.com per le azioni reviews o comments, oppure nel formato www.douban.com/group/topic/<ID>/ per group_topic.
- Parametri facoltativi:
- limit: Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 50. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. (predefinito: 15)
- Restituisce un elenco di record. Campi principali di ogni record: id, url, subject_id, subject_name, subject_type, title, text, rating, rating_scale, rating_label, author_name, author_url; 15 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=douban.
- Esempio di corpo della richiesta:
{
"platform": "douban",
"action": "reviews",
"params": {
"url": "https://book.douban.com/subject/2567698/"
}
}
- Prezzo: $24 per 1.000 richieste; le richieste non riuscite e i risultati vuoti non vengono addebitati.
- Per decine o centinaia di target, aggiungi "mode": "async" al corpo: ricevi subito un job_id ed esegui il polling su GET https://api.everyinfra.com/api/v1/jobs/{job_id} per ottenere il risultato.
- In caso di 422, correggi la richiesta usando i nomi dei parametri e i valori consentiti suggeriti nell'errore; in caso di 429 o 503, attendi il tempo indicato da Retry-After e riprova.
Prima di scrivere il codice, chiedimi quali target mi servono, quanti, quali campi e quale formato di output voglio; poi conferma con me il piano e il costo indicativo.Parametri della richiesta
#| Nome | Posizione | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|---|
Authorization | header | string | Sì | - | Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice. |
platform | body | string | Sì | douban | Identificativo della piattaforma, valore fisso. |
action | body | string | Sì | reviews | Identificativo della funzionalità, valore fisso. |
url | body.params | string | Sì | - | Specifica l'URL del soggetto nel formato /subject/<ID>/ su movie.douban.com, book.douban.com o music.douban.com per le azioni reviews o comments, oppure nel formato www.douban.com/group/topic/<ID>/ per group_topic. Recensioni lunghe, commenti brevi e risposte agli argomenti dei gruppi sono gestiti da endpoint di azione separati. |
limit | body.params | integer (1–50) | No | 15 | Numero massimo di righe da restituire in questa chiamata: un intero da 1 a 50. Se lo ometti, viene applicato il valore predefinito; una chiamata può restituire meno righe. I valori più alti restituiscono 422 prima di qualsiasi addebito. |
Esempi di codice
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "douban",
"action": "reviews",
"params": {
"url": "https://book.douban.com/subject/2567698/"
}
}'Definizione OpenAPI (JSON)Gli esempi leggono la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY; il codice copiato non contiene mai la tua chiave.
Esempio di risposta
#{ "id": "req_…", "platform": "douban", "action": "reviews", "results": [ { "id": "1342728", "url": "https://book.douban.com/review/1342728/", "subject_id": "2567698", "subject_name": "三体", "subject_type": "book", "title": "《三体》:当代史的科幻书写", "text": "评论刘慈欣的《三体》是件困难的事情,因为可以选择的角度太多。反复思量过后挑了这个角度,在我看来,写一部好的科幻小说,或者一部适合评论家们的科幻小说都不是难事,但是当作家的心思并不是用在这些上面,而是捎带着完成了这两件事的时候,就并不是那么容易了。很容易看出,刘慈欣在《三体》中表现出来的野心很大,不仅是试图将自己的作品序列进行系统化整理和某种程度上的超越,更重要的是试图给出一些达到“科幻”这个语词内涵之中的尝试。这些尝试的可贵之处勇气可嘉,以至于《三体》作为一部小说这样那样的问题都不足以稍稍削弱这种尝试中闪耀着的光芒。\n\n作为一部小说的《三体》,并不是一部…", "rating": 4, "rating_label": "推荐", "author_name": "•••", "author_url": "https://www.douban.com/•••", "author_avatar_url": "https://img3.doubanio.com/•••", "reply_count": 268, "posted_at": "2008-04-02T19:20:04+00:00", "platform": "douban", "rating_scale": 10 }, { "id": "1347293", "url": "https://book.douban.com/review/1347293/", "subject_id": "2567698", "subject_name": "三体", "subject_type": "book", "title": ",外星人,躲在暗处", "text": "三个质量相同或相近的物体,会在引力作用下进行着无规律、永不重复的复杂运动。《三体》那本书里,半人马座的三颗星,就是“三体运动”中的“三体”,三颗恒星的光和热蕴育了一种智慧生命。\n只是,太阳有3颗,是件麻烦事儿——有时太热,有时又太冷。那里的人把太阳正常的时期叫恒纪元,其他都是乱纪元。乱纪元时候,休眠;恒纪元的时候,才能繁衍生息,文明才能发展。经常地,当预言师拿出一份万年历,认为一段长期的恒纪元即将开始时,居民刚刚结束休眠,乱纪元却忽然出现,文明毁灭于大火或冰冻中。前191次被毁灭的文明都试图找到一份准确的万年历,直到第192次被毁灭的文明时,人们才终于明…", "rating": 5, "rating_label": "力荐", "author_name": "•••", "author_url": "https://www.douban.com/•••", "author_avatar_url": "https://img2.doubanio.com/•••", "reply_count": 149, "posted_at": "2008-04-08T01:25:48+00:00", "platform": "douban", "rating_scale": 10 } ], "count": 15, "billing": { "charged": …, "charged_usd": …, "balance_after_usd": …, … }, "quota": { … }}
Campi della risposta
#I dati di business si trovano in results. La tabella elenca i campi che un record può contenere; i valori che la piattaforma non mostra non vengono mai inventati.
| Campo | Significato |
|---|---|
id | ID univoco del record sulla piattaforma. È univoco solo all'interno di una piattaforma; gli ID possono ripetersi tra piattaforme diverse. |
url | Link al record sulla piattaforma. |
subject_id | Mantiene il significato attribuito dalla piattaforma |
subject_name | Mantiene il significato attribuito dalla piattaforma |
subject_type | Mantiene il significato attribuito dalla piattaforma |
title | Titolo. null quando la piattaforma non prevede titoli (ad esempio post di solo testo). |
text | Testo del contenuto senza HTML, restituito per intero e mai troncato (su alcune piattaforme i risultati degli elenchi contengono solo un estratto; lo indicano le note sui campi della piattaforma). |
rating | Valutazione. La scala varia in base alla piattaforma: rating_scale nella stessa riga indica il valore massimo (di solito 5; Booking, Douban, iQIYI e NAVER usano 10). Converti con rating_scale prima di confrontare piattaforme diverse, altrimenti il confronto può risultare invertito. |
rating_scale | Valore massimo di rating nella stessa riga: 5 per le scale a cinque stelle, 10 per quelle a dieci punti. Presente solo se la riga ha una valutazione. |
rating_label | Mantiene il significato attribuito dalla piattaforma |
author_name | Nome visualizzato dell'autore. |
author_url | Link al profilo dell'autore sulla piattaforma. |
author_avatar_url | Mantiene il significato attribuito dalla piattaforma |
reply_count | Risposte, di solito a un commento. null significa non rese note. |
posted_at | Data e ora di pubblicazione in formato ISO 8601, UTC (ad esempio 2026-08-07T12:34:56+00:00). Le stringhe non standard della piattaforma vengono passate così come sono, quindi esegui il parsing in modo difensivo. null significa che la piattaforma non le rende note. |
platform | Identificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok). |
Errori e addebiti
#- 401
- Chiave mancante o non valida.
- 402
- Saldo insufficiente. Effettua prima una ricarica.
- 422
- Nome o valore del parametro non valido. Correggilo seguendo i suggerimenti dell'errore. Nessun addebito.
- 429
- Raggiunto il limite di richieste al minuto. Attendi il tempo indicato da Retry-After, poi riprova.
- 503
- Impossibile completare. L'importo trattenuto torna sul tuo saldo. Se l'esito è incerto, verificalo prima di riprovare.
- Risposta 200 vuota
- Nessun dato. Nessun addebito.
Riferimenti ufficiali
#Usati solo per verificare oggetti e terminologia. Non implicano alcuna autorizzazione o approvazione di EveryInfra da parte della piattaforma.
- Douban Movies: recensioni lunghe, recensioni brevi e limiti di visibilità ↗
Douban Movies spiega separatamente le recensioni dei film e le recensioni brevi, precisando che la sezione delle recensioni brevi non le mostra tutte e che i contenuti visualizzati in forma compressa hanno una visibilità pubblica diversa. Gli elenchi di recensioni dei film restituiti da questo endpoint non vanno considerati uno storico completo né l'insieme di tutte le opinioni del pubblico; questa fonte non sostituisce le regole specifiche per libri o musica.
Verificato il 2026-09-04