La maggior parte dei principianti nel parsing inizia con la scansione completa del sito: accede alla homepage, raccoglie tutti i link, passa a ciascuno, raccoglie di nuovo i link — e così via per migliaia di volte. Questo consuma proxy, tempo e spesso si conclude con un ban. C'è un modo più semplice e economico: quasi ogni grande sito, inclusi Wildberries, Ozon e Avito, ha già una mappa pronta di tutte le pagine — sitemap.xml. Vediamo come trovarla, leggerla e usarla invece di migliaia di richieste superflue.
Che cos'è sitemap.xml e perché è utile per i parser
Sitemap.xml è un file che il sito crea autonomamente per i motori di ricerca come Google e Yandex. In esso sono elencate tutte le pagine che il proprietario del sito desidera che vengano indicizzate: schede prodotto, categorie, articoli del blog. In sostanza, è un elenco pronto di URL che il sito fornisce — non è necessario passare manualmente attraverso i link, cliccare sulla paginazione o decifrare la logica di navigazione.
Per i venditori che monitorano i prezzi dei concorrenti su Wildberries o Ozon, questo significa una cosa: invece di dover scansionare migliaia di categorie e pagine di paginazione, è possibile ottenere immediatamente un elenco di tutte le schede prodotto con una sola richiesta alla sitemap. Per i marketer che raccolgono un database di URL per analizzare i contenuti dei concorrenti, questo fa risparmiare ore di lavoro manuale. Per gli arbitraggisti che parsano le landing page dei concorrenti per analizzare i creativi, la sitemap mostra tutte le pagine del sito in un colpo solo.
Un punto importante: non tutte le pagine finiscono nella sitemap. A volte non vengono incluse pagine con filtri, promozioni temporanee o pagine con parametri nell'URL. Pertanto, la sitemap non è sempre una copertura al 100% del sito, ma di solito rappresenta l'80-95% delle pagine utili di cui hai bisogno per il catalogo o il monitoraggio.
Scansione completa vs sitemap-first: confronto dei costi
La differenza nei metodi è significativa, se si considerano non tentativi astratti, ma risorse reali: numero di richieste, consumo di traffico proxy e tempo fino al risultato. Di seguito un confronto sull'esempio della raccolta di un catalogo di 50.000 schede prodotto.
| Parametro | Scansione completa del sito | Parsing tramite sitemap |
|---|---|---|
| Richieste per raccogliere URL | 15.000–20.000 (categorie, paginazione, filtri) | 50–300 (solo file sitemap) |
| Tempo per raccogliere l'elenco degli URL | 4–8 ore | 15–30 minuti |
| Rischio di blocco IP | Alto a causa del volume di richieste alla navigazione | Basso, le richieste sono di gran lunga inferiori |
| Carico sul traffico proxy | Alto, è necessario un grande pool di IP | Minimo, si può fare con un piccolo pool |
| Difficoltà della logica del parser | Alta, è necessario analizzare la navigazione | Bassa, analisi della struttura XML |
La cifra "10 volte più economico" nel titolo non è un'esagerazione. Se la scansione completa richiede 15-20 mila richieste solo per comporre l'elenco delle pagine, e la sitemap fornisce lo stesso elenco con 50-300 richieste, il risparmio sul traffico proxy e sul tempo risulta moltiplicativo. Tuttavia, le schede prodotto dovranno comunque essere scaricate separatamente — ma saprai esattamente quali URL scaricare e non sprecherai risorse su pagine vuote, duplicati e link spazzatura.
Come trovare sitemap.xml su qualsiasi sito
Il primo e più semplice modo è aggiungere /sitemap.xml al dominio del sito. Ad esempio, per verificare, prova ad aprire nel browser un indirizzo del tipo https://example.com/sitemap.xml. Questo funzionerà per la maggior parte dei siti, inclusi molti negozi online su CMS popolari.
Se a questo indirizzo non c'è nulla, controlla il file robots.txt — è quasi sempre disponibile all'indirizzo /robots.txt e nella maggior parte dei casi contiene la riga Sitemap: https://example.com/sitemap_index.xml. Questo è il modo ufficiale in cui i siti comunicano ai motori di ricerca dove cercare la mappa. Nei grandi marketplace come Wildberries e Ozon, le mappe del sito sono spesso suddivise in decine di file e indicate proprio tramite robots.txt.
Un terzo modo è cercare menzioni nei sistemi come Google Search Console (se hai accesso al tuo sito) o utilizzare scanner di siti specializzati che trovano autonomamente tutti i file sitemap. Per i siti dei concorrenti, di solito bastano i primi due metodi: robots.txt è praticamente mai chiuso agli estranei, è un file pubblico.
Consiglio:
I nomi dei file sitemap non sono sempre standard. Possono apparire come sitemap_index.xml, sitemap-products.xml, product-sitemap.xml e simili. Inizia sempre con robots.txt — ti indicherà i percorsi esatti.
Struttura della sitemap nei marketplace: indice e mappe annidate
I piccoli siti di solito hanno un solo file sitemap.xml con tutti gli URL. Ma nei grandi cataloghi, come Wildberries, Ozon o Avito, ci sono milioni di pagine, e un solo file XML di tale dimensione sarebbe scomodo. Pertanto, utilizzano il cosiddetto indice della sitemap — un file di sommario che fa riferimento a decine o centinaia di file sitemap separati, suddivisi per categorie, date o semplicemente in blocchi di 10-50 mila URL.
La struttura appare più o meno così: prima apri il file indice principale, in cui trovi un elenco di link alle sitemap figlie, ad esempio sitemap-products-1.xml, sitemap-products-2.xml e così via. Poi è necessario scaricare ciascuno di questi file e da essi estrarre gli URL finali delle schede prodotto. Questo è un processo a due livelli, ma è comunque di gran lunga più veloce rispetto alla scansione manuale della navigazione del sito.
A volte i file sitemap figlie sono compressi in formato gzip (estensione .xml.gz) — questa è una pratica standard per risparmiare spazio sul server. Se lo script scarica un file e vede caratteri illeggibili invece di XML, è probabile che sia necessario prima decomprimere il contenuto prima del parsing.
Estrazione passo passo degli URL dalla sitemap
Per coloro che lavorano con strumenti di parsing no-code pronti, la maggior parte dei moderni parser di cataloghi dei marketplace già sa leggere la sitemap automaticamente — basta specificare l'URL radice del sito, e lo strumento troverà autonomamente robots.txt, troverà l'indice della sitemap e raccoglierà l'elenco di tutte le schede. Ma se stai lavorando con uno sviluppatore o scrivendo un piccolo script da solo, la logica di funzionamento è semplice, ecco un esempio in Python:
import requests
import gzip
from io import BytesIO
from lxml import etree
def get_sitemap_urls(sitemap_url, proxies=None):
response = requests.get(sitemap_url, proxies=proxies, timeout=15)
content = response.content
# Decompressione gzip, se il file è compresso
if sitemap_url.endswith('.gz'):
content = gzip.decompress(content)
root = etree.fromstring(content)
namespace = {'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'}
# Se è un indice sitemap — raccogliamo i link alle mappe figlie
sub_sitemaps = root.findall('.//ns:sitemap/ns:loc', namespace)
if sub_sitemaps:
all_urls = []
for sub in sub_sitemaps:
all_urls.extend(get_sitemap_urls(sub.text, proxies))
return all_urls
# Se è una normale sitemap — raccogliamo gli URL finali
urls = root.findall('.//ns:url/ns:loc', namespace)
return [url.text for url in urls]
proxy = {
"http": "http://user:pass@proxy_host:port",
"https": "http://user:pass@proxy_host:port"
}
urls = get_sitemap_urls("https://example.com/sitemap_index.xml", proxies=proxy)
print(f"Trovati URL: {len(urls)}")
Questo script attraversa ricorsivamente il file indice, scarica ogni mappa figlia e raccoglie tutti i link finali in un unico elenco. Alla fine ottieni un elenco completo di URL delle schede prodotto senza un singolo passaggio superfluo attraverso la navigazione del sito.
Filtraggio delle pagine necessarie in base ai modelli URL
Dopo aver ottenuto l'elenco completo degli URL dalla sitemap, è quasi sempre necessario filtrarlo. In un file sitemap di un marketplace possono coesistere schede prodotto, pagine di categorie, articoli di blog, pagine di marchi e pagine di servizio. Probabilmente hai bisogno solo delle schede prodotto di una determinata categoria.
Per il filtraggio si utilizzano di solito modelli URL. Ad esempio, se le schede prodotto sul sito hanno il formato /catalog/product/12345, mentre le categorie appaiono come /catalog/category/electronics, non è difficile separare l'uno dall'altro semplicemente confrontando i segmenti del percorso. Per casi più complessi, quando la struttura dell'URL non è così ovvia, si utilizzano espressioni regolari — esse consentono di definire un modello una volta e filtrare istantaneamente centinaia di migliaia di link.
È anche utile guardare i tag <lastmod> all'interno della sitemap — essi mostrano la data dell'ultima modifica della pagina. Se hai bisogno non di un catalogo completo, ma solo di prodotti aggiornati nell'ultima settimana (ad esempio, per monitorare le nuove posizioni dei concorrenti), puoi filtrare gli URL proprio in base a questa data e non toccare le pagine che non sono cambiate da mesi.
Configurazione del proxy per il download massivo delle mappe del sito
Nonostante le richieste alla sitemap siano di gran lunga inferiori rispetto alla scansione completa, siti come Wildberries e Ozon monitorano comunque attività sospette — richieste troppo frequenti da un singolo IP, User-Agent non tipici, assenza di intestazioni del browser. Pertanto, anche per scaricare i file sitemap è consigliabile utilizzare un proxy, soprattutto se prevedi un monitoraggio regolare, e non una raccolta occasionale del catalogo.
Per scaricare i file XML della sitemap, di solito sono sufficienti proxy di data center — sono veloci ed economici, e poiché ci sono poche richieste alla sitemap, i siti applicano raramente una protezione severa rispetto alle normali pagine del catalogo. Ma già nella fase di download delle schede prodotto tramite gli URL raccolti, dove le richieste sono di un ordine di grandezza superiore e la protezione è più severa, è meglio passare a proxy residenziali — essi utilizzano IP reali di utenti comuni e raramente vengono bloccati dai sistemi anti-bot dei marketplace.
Se monitori il catalogo dalle versioni mobili del sito o da un'API che restituisce dati solo con traffico mobile, vale la pena considerare proxy mobili — essi utilizzano IP di operatori mobili e sono considerati i più affidabili dalla maggior parte dei sistemi anti-frode.
La configurazione pratica nello script o nel parser è semplice: specifica l'host, la porta, il nome utente e la password del proxy nei campi corrispondenti della richiesta (come mostrato nell'esempio di codice sopra nel parametro proxies), oppure, se utilizzi un parser no-code pronto o un browser anti-detect come Dolphin Anty o AdsPower per controllare manualmente la struttura del sito prima di impostare la raccolta automatica, inserisci i dati del proxy nelle impostazioni del profilo: apri la scheda "Proxy" → seleziona il tipo HTTP o SOCKS5 → inserisci l'host, la porta, il nome utente, la password → salva il profilo.
Errori comuni nel lavoro con la sitemap
Il primo e più comune errore è ignorare robots.txt e cercare di indovinare l'indirizzo della sitemap a caso. Questa è una perdita di tempo che può essere facilmente evitata semplicemente dando un'occhiata al file delle regole di indicizzazione.
Il secondo errore è non considerare che la sitemap potrebbe essere incompleta. Alcuni siti escludono intenzionalmente dalla sitemap pagine di basso valore per SEO, ma che sono comunque importanti per il monitoraggio dei prezzi — ad esempio, pagine di prodotti non disponibili. Se dopo il parsing tramite sitemap il numero di schede raccolte è notevolmente inferiore a quello previsto, è opportuno confrontarsi con il numero di prodotti mostrato dal sito stesso nella categoria e, se necessario, integrare la raccolta con una scansione mirata delle sezioni mancanti.
Il terzo errore è non memorizzare in cache i file sitemap già scaricati. Se esegui il monitoraggio quotidianamente, non ha senso scaricare ogni volta nuovamente il file indice e tutte le mappe figlie — la maggior parte di esse non cambia ogni giorno. Salva l'elenco degli URL localmente e aggiorna solo ciò che è realmente cambiato in base alla data lastmod.
Il quarto errore è dimenticare le intestazioni della richiesta. Anche il download di un semplice file XML può essere bloccato se la richiesta appare come quella di un bot: senza User-Agent, senza Accept-Language, con intestazioni predefinite non tipiche impostate dalla libreria per le richieste. Aggiungere intestazioni realistiche del browser insieme ai proxy riduce drasticamente la probabilità di blocco in questa fase.
Checklist per avviare il parsing tramite sitemap
Prima di avviare una raccolta completa del catalogo, segui un breve elenco di passaggi per non perdere tempo con errori:
- Controllato robots.txt del sito e trovato l'indirizzo esatto della sitemap o dell'indice della sitemap
- Assicurato che la struttura della sitemap sia a due livelli (indice + mappe figlie) o a un livello
- Controllato se i file figlie sono compressi in gzip
- Definito il modello URL per le pagine necessarie (schede prodotto, categorie, ecc.)
- Impostato il filtraggio in base al modello o alla data lastmod, se sono necessarie solo posizioni fresche
- Collegato proxy per scaricare i file sitemap e separatamente per scaricare le schede
- Aggiunto intestazioni realistiche della richiesta (User-Agent, Accept-Language)
- Impostato la memorizzazione in cache e il confronto per data per i monitoraggi ripetuti
- Confrontato il numero finale di URL con il numero approssimativo di prodotti sul sito
Conclusione
L'approccio sitemap-first non è un hack e non è un modo per bypassare la protezione, ma piuttosto un utilizzo delle informazioni che il sito stesso pubblica per i motori di ricerca. Invece di migliaia di richieste alla navigazione, alle categorie e alla paginazione, ottieni un elenco pronto delle pagine necessarie con alcune decine di richieste ai file XML. Questo fa risparmiare tempo nell'avvio del parsing, riduce il consumo di traffico proxy e diminuisce notevolmente il rischio di blocco IP, poiché il carico sul sito è di gran lunga inferiore rispetto alla scansione completa.
Se stai appena iniziando a monitorare il catalogo di Wildberries, Ozon o di un altro grande sito, inizia con la sitemap — probabilmente risparmierai ore di lavoro già al primo avvio. Per scaricare i file sitemap stessi, bastano economici proxy di data center, mentre per la successiva raccolta regolare di dati sulle schede prodotto, dove il rischio di blocco è maggiore, vale la pena considerare i proxy residenziali — essi garantiscono un funzionamento stabile del parser senza frequenti ban a lungo termine.