Pular para o conteúdo principal

HTML::LinkExtractor - Scraper de links externos e internos de um site específico

Visão geral do scraper

Visão geral do scraperHTML::LinkExtractorHTML::LinkExtractor – scraper de links externos e internos de um site especificado. Suporta extração multipáginas e navegação por páginas internas do site até a profundidade especificada, o que permite percorrer todas as páginas do site, coletando links internos e externos. Possui ferramentas integradas para contornar a proteção CloudFlare e também a possibilidade de escolher Chrome como motor para extração de e-mails de páginas cujos dados são carregados por scripts. Capaz de atingir velocidades de até 2000 requisições por minuto – isso representa 120 000 links por hora.

Casos de uso do scraper

Coleta de todos os links externos de um site
  1. Adicionar a opção Parse to level, na lista selecionar o valor 10 (navegação por páginas adjacentes até o 10º nível).
  2. Adicionar a opção Result format, como valor indicar $extlinks.format('$link\n') (saída de links externos).
  3. Na seção Queries (Consultas), marcar a opção Unique queries.
  4. Na seção Results (Resultados), marcar a opção Unique string.
  5. Como consulta, indicar o link do site do qual se deseja extrair os links externos.
Baixar exemplo

Como importar o exemplo para o 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=

Semelhante ao primeiro caso, mas no passo 2, como valor, deve-se indicar $intlinks.format('$link\n') (saída de links internos).

Baixar exemplo

Como importar o exemplo para o 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=
Navegação apenas por links que não contêm a palavra forum
  1. Adicionar a opção Parse to level, na lista selecionar o valor 3 (navegação por páginas adjacentes até o 3º nível).
  2. Adicionar a opção Result format, como valor indicar $query.
  3. Adicionar um filtro. Filtrar por $followlinks.$i.link - Link, selecionar o tipo Not contain string, e como a própria string indicar forum.
  4. Na seção Queries (Consultas), marcar a opção Unique queries.
  5. Na seção Results (Resultados), marcar a opção Unique string.
  6. Como consulta, indicar o link do site do qual se deseja extrair os links.
Baixar exemplo

Como importar o exemplo para o 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=

Dados coletados

  • Número de links externos
  • Número de links internos
  • Links externos:
    • os próprios links
    • âncoras
    • âncoras limpas de tags HTML
    • parâmetro nofollow
    • tag <a> completa
  • Links internos:
    • os próprios links
    • âncoras
    • âncoras limpas de tags HTML
    • parâmetro nofollow
    • tag <a> completa
  • Array com todas as páginas coletadas (usado quando a opção Use Pages está ativa)

Recursos

  • Extração de dados multipáginas (navegação por páginas)
  • Navegação pelas páginas internas do site até a profundidade especificada (opção Parse to level) – permite percorrer todas as páginas do site, coletando links internos e externos
  • Limite de navegação por páginas (opção Follow links limit)
  • Limpa automaticamente a âncora de tags HTML
  • Identificação de nofollow para cada link
  • Possibilidade de especificar se subdomínios devem ser considerados como páginas internas do site
  • Suporta compressão gzip/deflate/brotli
  • Identificação e conversão de codificações de sites para UTF-8
  • Contorno de proteção CloudFlare
  • Escolha do motor (HTTP ou Chrome)

Casos de uso

  • Obtenção do mapa completo do site (salvando todos os links internos)
  • Obtenção de todos os links externos de um site
  • Verificação de backlink para o seu próprio site

Consultas

Como consultas, é necessário indicar os links das páginas das quais se deseja coletar os links, ou o ponto de entrada (por exemplo, a página inicial do site), nos casos em que a opção Parse to level é utilizada:

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

Exemplos de saída de resultados

O A-Parser suporta formatação flexível de resultados graças ao motor de modelos integrado Template Toolkit, o que permite exibir resultados em formato livre, bem como estruturado, por exemplo, CSV ou JSON

Formato do resultado:

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

Exemplo de resultado:

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/

Configurações possíveis

Nome do parâmetroValor padrãoDescrição
Good statusAllEscolha de qual resposta do servidor será considerada bem-sucedida. Se houver outra resposta do servidor durante a extração, a consulta será repetida com outro proxy
Good code RegExPossibilidade de especificar uma expressão regular para verificar o código de resposta
Ban Proxy Code RegExPossibilidade de banir o proxy temporariamente (Proxy ban time) com base no código de resposta do servidor
MethodGETMétodo da requisição
POST bodyConteúdo para enviar ao servidor ao usar o método POST. Suporta as variáveis $query – URL da consulta, $query.orig – consulta original e $pagenum - número da página ao usar a opção Use Pages.
CookiesPossibilidade de especificar cookies para a requisição.
User agent_O user-agent da versão atual do Chrome é inserido automaticamente_Cabeçalho User-Agent ao solicitar páginas
Additional headersPossibilidade de especificar cabeçalhos de requisição personalizados com suporte aos recursos do motor de modelos e uso de variáveis do construtor de consultas
Read only headersLer apenas cabeçalhos. Em alguns casos, permite economizar tráfego se não houver necessidade de processar o conteúdo
Detect charset on contentReconhecer a codificação com base no conteúdo da página
Emulate browser headersEmular cabeçalhos de navegador
Max redirects count0Número máximo de redirecionamentos que o scraper seguirá
Follow common redirectsPermite fazer redirecionamentos http <-> https e www.domain <-> domain dentro do mesmo domínio, ignorando o limite Max redirects count
Max cookies count16Número máximo de cookies para salvar
EngineHTTP (Fast, JavaScript Disabled)Permite escolher o motor HTTP (mais rápido, sem JavaScript) ou Chrome (mais lento, JavaScript ativado)
Chrome HeadlessSe a opção estiver ativada, o navegador não será exibido
Chrome DevToolsPermite usar ferramentas de depuração do Chromium
Chrome Log Proxy connectionsSe a opção estiver ativada, informações sobre as conexões do chrome serão exibidas no log
Chrome Wait Untilnetworkidle2Define quando a página é considerada carregada. Mais detalhes sobre os valores.
Use HTTP/2 transportDefine se deve usar HTTP/2 em vez de HTTP/1.1. Por exemplo, Google e Majestic banem imediatamente se usar HTTP/1.1.
Don't verify TLS certsDesativação da validação de certificados TLS
Randomize TLS FingerprintEsta opção permite contornar o banimento de sites por impressão digital TLS
Bypass CloudFlareContorno automático da verificação CloudFlare
Bypass CloudFlare with Chrome(Experimental)Contorno de CF via Chrome
Bypass CloudFlare with Chrome Max Pages20Número máx. de páginas ao contornar CF via Chrome
Subdomains are internalSe deve considerar subdomínios como links internos
Follow linksInternal onlyQuais links seguir
Follow links limit0Limite de Follow links, aplicado a cada domínio único
Skip comment blocksSe deve ignorar blocos de comentários