Vai al contenuto principale

HTML::LinkExtractor - Scraper di link esterni e interni da un sito specificato

Panoramica dello scraper

Panoramica dello scraperHTML::LinkExtractorHTML::LinkExtractor – scraper di link esterni e interni da un sito specificato. Supporta lo scraping multipagina e la navigazione attraverso le pagine interne del sito fino alla profondità specificata, consentendo di scansionare tutte le pagine del sito raccogliendo link interni ed esterni. Dispone di strumenti integrati per il bypass della protezione CloudFlare e anche la possibilità di scegliere Chrome come motore per lo scraping di email dalle pagine i cui dati vengono caricati tramite script. È in grado di raggiungere una velocità fino a 2000 richieste al minuto – ovvero 120 000 link all'ora.

Casi d'uso dello scraper

Raccolta di tutti i link esterni da un sito
  1. Aggiungere l'opzione Parse to level, selezionare il valore 10 nell'elenco (navigazione attraverso le pagine adiacenti fino al 10° livello).
  2. Aggiungere l'opzione Result format, indicare come valore $extlinks.format('$link\n') (output dei link esterni).
  3. Nella sezione Queries (Query), spuntare l'opzione Unique queries.
  4. Nella sezione Results (Risultati), spuntare l'opzione Unique string.
  5. Come query, indicare il link al sito da cui si desidera estrarre i link esterni.
Scarica l'esempio

Come importare l'esempio in A-Parser

eJxtU01v2zAM/S9CgK5AlrSHXnxLgwZb4dZdm57SHISYztTIoirRWQrD/32U7NjJ
1ptIvsfHL9WCpN/5JwceyItkVQsb3yIRORSy0iTGwkrnwYXwSvxYPqRJkiqzuzuQ
kxtCx4geWwv6tMBstKTQeI6pnM2YIoU9aPbspa4Yc33VnOD34JzK4Ugo0JWSuJa2
hI4iRnAgzeJ+0gK+XYyC+fZmLi5Fs16PRUvxixgODHs96Xrqgy9yD0sMKkrD4F6w
9SjLqJNLghA96lxO6BAyyDxXoTOpW4UwlUH11aiPWKcnp8yW8Ww6BX7hsGQ3QUwS
nJ/HCldiFG3BaarI/9VyREKugrHwXO1Cci15Hyik9hxRBE7yBrJu2Ekt0My0joMe
YDH9baV0zlucFUz62RG/hmT/5Wj6Dk+leGV/HNfQZ4nWbfYwsHJMccuNG+S2tSoV
se3nWJmwmyt27gBsP7bHACvRQS/TZe7U+VAtmHAfw9ZmdnCdtXG2mXPnBk2htll3
c0dkZZb8GzIzx9JqCH2ZSmveiofn4UJmvltDMIYC/yXPo8TZPyJE7e9f2lKtU3yB
N6HAkid5qtql3EitX5/T04gYLoqN30Q2mU7ld4ueFzpRpsCpCESCLfJFcVvNuv+/
/S+vv/zFSd3wwt79U4sO3QUs+3hMnrfBP7b5C6wbebo=

Analogamente al primo caso, ma al passaggio 2 indicare come valore $intlinks.format('$link\n') (output dei link interni).

Scarica l'esempio

Come importare l'esempio in A-Parser

eJxtU8tu2zAQ/BfCQBrAtZNDL7o5Roy2cOI0j5PjA2GtXNYUyZIrN4Ggf++QkiW7
zY27O7OzL9aCZdiHB0+BOIhsXQuX3iITORWy0izGwkkfyMfwWnx9vltm2VKZ/e0b
e7ll64HosbXgd0dgW8fKmoCYymGmFEs6kIbnIHUFzPVVc4I/kPcqpyOhsL6UjFra
EjqKGCnDGuJh0gI+XYyi+fpqLi5Fs9mMRUsJixSODHc96Xrqg0/yQM82qihNg3sB
616WSSeXTDF61Lmc8FvMIPNcxc6kbhXiVAbVF6N+pzoDe2V2wMP0isLC2xJuppQk
Ot+PFa7FKNkCaarE/9FyRMa+orEIqHYhUUveBwqpAyKKyUtsYNUNO6uFNTOt06AH
WEp/UymdY4uzAqRvHfFjyOq/HE3f4akUVvbHo4Y+S7JuVncDK7dLu0PjxqJtrUrF
sMPcVibu5grOPZHrx3YfYaX11Mt0mTt1HKojE+9j2NrMDa6zNs42c+7cWlOo3aq7
uSOyMs/4DSszt6XTFPsyldbYSqDH4UJmoVtDNIYC/yXPk8TZP2Jrdfj+1JbqvMIF
fokFlpjkqWqXciu1fnlcnkbEcFEwfjK7bDqVn50NWOhEmcJORSQy7SwuCm01m/7/
9r+8/vAXZ3WDhf0KDy06dhex8GFMAdvAj23+ApcrebQ=
Navigazione solo sui link che non contengono la parola forum
  1. Aggiungere l'opzione Parse to level, selezionare il valore 3 nell'elenco (navigazione attraverso le pagine adiacenti fino al 3° livello).
  2. Aggiungere l'opzione Result format, indicare come valore $query.
  3. Aggiungere un filtro. Filtrare per $followlinks.$i.link - Link, scegliere il tipo Not contain string, e indicare forum come stringa stessa.
  4. Nella sezione Queries (Query), spuntare l'opzione Unique queries.
  5. Nella sezione Results (Risultati), spuntare l'opzione Unique string.
  6. Come query, indicare il link al sito da cui si desidera estrarre i link.
Scarica l'esempio

Come importare l'esempio in A-Parser

eJxtVE1v2zAM/S/CDhuQJS2GXXxLgwbd4DZdm57SHISYzrTIkipRaQvD/33UR2xn
6ykh+R75+CG3DLk7uHsLDtCxYtMyE/+zglVQcy+RTZjh1oEN4Q27Wd+WRVEKdbh+
Q8t3qC0hemzL8N0AsbVBoZWjmKjIjClKOIIkz5FLT5hv3Qh+BGtFBSd8rW3DkaQk
BZnBPr14sO/Pz4qNuLWQCEFFhhcbokupXyWpDArCL9tOMnCdWErjTivkQo3yU1nf
kJ3Uk8MB9dBtt6fkbhmFBSnmcppn1Qcf+RHWOkmCwb0k6443sYGKI4ToNHX4+csU
30IGXlUi1OQyVQjTHqo+KfESBTq0Qu0JHwYhwC2tbsiNEJPE6ZwUbvK0Quc+8n8l
DivQepgwR2qXnLRUfaDm0lFE0Jg4bXaVl1i0TKu5lHGBAyymv/JCVnQd85pIPzLx
Y8jqvxxd3+G4FN3CqyUNfZZoXa1uB1alS72PW4z7bQSS7Rbaq7CbC3IeAEw/trsA
a7SFvkzOnKvTAzCgwuENW5ubwXXWxtlmzp10UbXYr/Ixn5BeremVrdRCN0ZC6Et5
KWkrDh6GC5m7vIZgDAL/JS9iibP3iVpL9/MxSTVW0AV+DwIbmuS4ak6541I+PZTj
CBsuiozfiKaYzfjX9PCnO93MWOAh7DUdFHXVbfvPQv/xaD/8OBRtR/v64+4TOjQX
sOSjKbn4yi67v8azl7c=

Dati raccolti

  • Numero di link esterni
  • Numero di link interni
  • Link esterni:
    • i link stessi
    • anchor
    • anchor puliti dai tag HTML
    • parametro nofollow
    • tag <a> completo
  • Link interni:
    • i link stessi
    • anchor
    • anchor puliti dai tag HTML
    • parametro nofollow
    • tag <a> completo
  • Array con tutte le pagine raccolte (utilizzato quando l'opzione Use Pages è attiva)

Funzionalità

  • Scraping multipagina (navigazione tra le pagine)
  • Navigazione attraverso le pagine interne del sito fino alla profondità specificata (opzione Parse to level) – permette di scansionare tutte le pagine del sito, raccogliendo link interni ed esterni
  • Limite di navigazione tra le pagine (opzione Follow links limit)
  • Pulisce automaticamente l'anchor dai tag HTML
  • Rilevamento di nofollow per ogni link
  • Possibilità di specificare se considerare i sottodomini come pagine interne del sito
  • Supporta la compressione gzip/deflate/brotli
  • Rilevamento e conversione della codifica dei siti in UTF-8
  • Bypass della protezione CloudFlare
  • Scelta del motore (HTTP o Chrome)

Casi d'uso

  • Ottenimento di una mappa completa del sito (salvataggio di tutti i link interni)
  • Ottenimento di tutti i link esterni da un sito
  • Verifica dei backlink al proprio sito

Query

Come query è necessario indicare i link alle pagine da cui raccogliere i link, o un punto di ingresso (ad esempio, la home page del sito), nei casi in cui si utilizzi l'opzione Parse to level:

https://lenta.ru/
https://a-parser.com/wiki/index/

Esempi di output dei risultati

A-Parser supporta una formattazione flessibile dei risultati grazie al motore di modelli integrato Template Toolkit, che gli consente di produrre risultati in forma libera o strutturata, come CSV o JSON

Formato del risultato:

External links: $extcount\n$extlinks.format('$link\n')
Internal links: $intcount\n$intlinks.format('$link\n')

Esempio di risultato:

External links: 12
https://www.youtube.com/c/AParser_channel
https://t.me/a_parser
https://en.a-parser.com/
https://spyserp.com/ru/
https://sitechecker.pro/
https://arsenkin.ru/tools/
https://spyserp.com/
http://www.promkaskad.ru/
https://www.youtube.com/channel/UCvypGICrfCky8tPtebmIvQw
https://www.facebook.com/AParserRu
https://twitter.com/a_parser
https://www.youtube.com/c/AParser_channel

Internal links: 129
https://a-parser.com/
https://a-parser.com/
https://a-parser.com/a-parser-for-seo/
https://a-parser.com/a-parser-for-business-and-freelancers/
https://a-parser.com/a-parser-for-developers/
https://a-parser.com/a-parser-for-marketing-and-analytics/
https://a-parser.com/a-parser-for-e-commerce/
https://a-parser.com/a-parser-for-cpa/
https://a-parser.com/wiki/features-and-benefits/
https://a-parser.com/wiki/parsers/

Impostazioni possibili

Nome parametroValore predefinitoDescrizione
Good statusAllScelta di quale risposta dal server sarà considerata corretta. Se durante lo scraping si riceve una risposta diversa dal server, la query verrà ripetuta con un altro proxy
Good code RegExPossibilità di specificare un'espressione regolare per controllare il codice di risposta
Ban Proxy Code RegExPossibilità di bannare il proxy temporaneamente (Proxy ban time) in base al codice di risposta del server
MethodGETMetodo della richiesta
POST bodyContenuto da inviare al server quando si utilizza il metodo POST. Supporta le variabili $query – URL della richiesta, $query.orig – query originale e $pagenum - numero di pagina quando si utilizza l'opzione Use Pages.
CookiesPossibilità di specificare i cookie per la richiesta.
User agent_Viene inserito automaticamente lo user-agent della versione attuale di Chrome_Intestazione User-Agent durante la richiesta delle pagine
Additional headersPossibilità di specificare intestazioni di richiesta personalizzate con supporto alle funzionalità del motore di modelli e utilizzo di variabili dal costruttore di query
Read only headersLeggi solo le intestazioni. In alcuni casi permette di risparmiare traffico se non è necessario elaborare il contenuto
Detect charset on contentRiconoscimento della codifica in base al contenuto della pagina
Emulate browser headersEmula le intestazioni del browser
Max redirects count0Numero massimo di reindirizzamenti che lo scraper seguirà
Follow common redirectsConsente di effettuare reindirizzamenti http <-> https e www.domain <-> domain all'interno dello stesso dominio bypassando il limite Max redirects count
Max cookies count16Numero massimo di cookie da salvare
EngineHTTP (Fast, JavaScript Disabled)Permette di scegliere il motore HTTP (più veloce, senza JavaScript) o Chrome (più lento, JavaScript abilitato)
Chrome HeadlessSe l'opzione è attiva, il browser non verrà visualizzato
Chrome DevToolsPermette di utilizzare gli strumenti di debug di Chromium
Chrome Log Proxy connectionsSe l'opzione è attiva, le informazioni sulle connessioni chrome verranno visualizzate nel log
Chrome Wait Untilnetworkidle2Determina quando la pagina è considerata caricata. Maggiori informazioni sui valori.
Use HTTP/2 transportDetermina se utilizzare HTTP/2 invece di HTTP/1.1. Ad esempio, Google e Majestic bannano immediatamente se si utilizza HTTP/1.1.
Don't verify TLS certsDisabilitazione della validazione dei certificati TLS
Randomize TLS FingerprintQuesta opzione permette di bypassare il ban dei siti basato sull'impronta TLS
Bypass CloudFlareBypass automatico del controllo CloudFlare
Bypass CloudFlare with Chrome(Experimental)Bypass di CF tramite Chrome
Bypass CloudFlare with Chrome Max Pages20Numero massimo di pagine durante il bypass di CF tramite Chrome
Subdomains are internalSe considerare i sottodomini come link interni
Follow linksInternal onlyQuali link seguire
Follow links limit0Limite Follow links, applicato a ogni dominio unico
Skip comment blocksSe saltare i blocchi di commenti