HTML::LinkExtractor - Scraper van externe en interne links van een opgegeven website
Overzicht van de scraper

HTML::LinkExtractor – scraper voor externe en interne links van een opgegeven website. Ondersteunt multithreading en navigatie door interne pagina's van de site tot een opgegeven diepte, wat het mogelijk maakt om alle pagina's van de site te doorlopen en interne en externe links te verzamelen. Heeft ingebouwde middelen om beveiliging te omzeilen CloudFlare en ook de mogelijkheid om te kiezen voor Chrome als engine voor het scrapen van e-mails van pagina's waarvan de gegevens door scripts worden geladen. Kan een snelheid bereiken tot 2000 aanvragen per minuut – dat zijn 120 000 links per uur.Toepassingen van de scraper
Verzamelen van alle externe links van een website

- Voeg de optie Parse to level toe, kies in de lijst de waarde
10(navigeren door naburige pagina's tot het 10e niveau). - Voeg de optie Result format toe, geef als waarde
$extlinks.format('$link\n')op (uitvoer van externe links). - Vink in de sectie Queries (Query's) de optie
Unique queriesaan. - Vink in de sectie Results (Resultaten) de optie
Unique stringaan. - Geef als query de link op naar de website waarvan de externe links moeten worden gescraped.
Voorbeeld downloaden
Hoe een preset te importeren 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=
tip
Verzamelen van alle interne links van een website
Vergelijkbaar met de eerste case, maar in stap 2 moet als waarde $intlinks.format('$link\n') worden opgegeven (uitvoer van interne links).
Voorbeeld downloaden
Hoe een preset te importeren 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=
Alleen navigeren naar links die het woord forum niet bevatten

- Voeg de optie Parse to level toe, kies in de lijst de waarde
3(navigeren door naburige pagina's tot het 3e niveau). - Voeg de optie Result format toe, geef als waarde
$queryop. - Voeg een filter toe. Filter op
$followlinks.$i.link - Link, kies als typeNot contain string, en geef als de regel zelfforumop. - Vink in de sectie Queries (Query's) de optie
Unique queriesaan. - Vink in de sectie Results (Resultaten) de optie
Unique stringaan. - Geef als query de link op naar de website waarvan de links moeten worden gescraped.
Voorbeeld downloaden
Hoe een preset te importeren 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=
tip
Verzamelde gegevens
- Aantal externe links
- Aantal interne links
- Externe links:
- de links zelf
- ankerteksten
- ankerteksten ontdaan van HTML-tags
- nofollow-parameter
- volledige
<a>tag
- Interne links:
- de links zelf
- ankerteksten
- ankerteksten ontdaan van HTML-tags
- nofollow-parameter
- volledige
<a>tag
- Array met alle verzamelde pagina's (gebruikt bij de optie Use Pages)
Mogelijkheden
- Multipage scraping (navigeren door pagina's)
- Navigeren door interne pagina's van de site tot een opgegeven diepte (optie Parse to level) – maakt het mogelijk om alle pagina's van de site te doorlopen en interne en externe links te verzamelen
- Limiet voor het volgen van links (optie Follow links limit)
- Automatisch ontdoen van ankerteksten van HTML-tags
- Detectie van nofollow voor elke link
- Mogelijkheid om aan te geven subdomeinen als interne pagina's van de site te beschouwen
- Ondersteunt compressie gzip/deflate/brotli
- Detectie en conversie van website-coderingen naar UTF-8
- Omzeilen van CloudFlare-beveiliging
- Keuze van engine (HTTP of Chrome)
Gebruiksscenario's
- Verkrijgen van een volledige sitemap (opslaan van alle interne links)
- Verkrijgen van alle externe links van een website
- Controleren van backlinks naar de eigen website
Query's
Als query's moeten links naar pagina's worden opgegeven waarvan links moeten worden verzameld, of een startpunt (bijvoorbeeld de hoofdpagina van de site) in gevallen waarin de optie Parse to level wordt gebruikt:
https://lenta.ru/
https://a-parser.com/wiki/index/
Voorbeelden van resultaatuitvoer
A-Parser ondersteunt flexibele resultaatopmaak dankzij de ingebouwde sjabloon-engine Template Toolkit, waardoor resultaten in willekeurige vorm kunnen worden uitgevoerd, evenals in gestructureerde formaten zoals CSV of JSON
Uitvoer van externe en interne links met hun aantal
Resultaatindeling:
External links: $extcount\n$extlinks.format('$link\n')
Internal links: $intcount\n$intlinks.format('$link\n')
Voorbeeldresultaat:
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/
Mogelijke instellingen
opmerking
| Naam parameter | Standaardwaarde | Beschrijving |
|---|---|---|
| Good status | All | Selectie van welk antwoord van de server als succesvol wordt beschouwd. Als er tijdens het scrapen een ander antwoord van de server komt, wordt de aanvraag herhaald met een andere proxy |
| Good code RegEx | Mogelijkheid om een reguliere expressie op te geven voor het controleren van de responscode | |
| Ban Proxy Code RegEx | Mogelijkheid om proxy's tijdelijk te blokkeren (Proxy ban time) op basis van de serverresponscode | |
| Method | GET | Aanvraagmethode |
| POST body | Inhoud die naar de server moet worden verzonden bij gebruik van de POST-methode. Ondersteunt variabelen $query – aanvraag-URL, $query.orig – oorspronkelijke query en $pagenum - paginanummer bij gebruik van de optie Use Pages. | |
| Cookies | Mogelijkheid om cookies op te geven voor de aanvraag. | |
| User agent | _Automatisch wordt de user-agent van de actuele Chrome-versie ingevuld_ | De header User-Agent bij het opvragen van pagina's |
| Additional headers | Mogelijkheid om aangepaste aanvraagheaders op te geven met ondersteuning voor sjabloonmogelijkheden en gebruik van variabelen uit de query-builder | |
| Read only headers | ☐ | Alleen headers lezen. In sommige gevallen bespaart dit verkeer als het niet nodig is om de inhoud te verwerken |
| Detect charset on content | ☐ | Codering herkennen op basis van de pagina-inhoud |
| Emulate browser headers | ☐ | Browserheaders emuleren |
| Max redirects count | 0 | Maximaal aantal redirects dat de scraper zal volgen |
| Follow common redirects | ☑ | Maakt redirects mogelijk tussen http <-> https en www.domain <-> domain binnen hetzelfde domein, buiten de limiet van Max redirects count om |
| Max cookies count | 16 | Maximaal aantal cookies om op te slaan |
| Engine | HTTP (Fast, JavaScript Disabled) | Maakt het mogelijk om de engine te kiezen: HTTP (sneller, zonder JavaScript) of Chrome (langzamer, JavaScript ingeschakeld) |
| Chrome Headless | ☐ | Als deze optie is ingeschakeld, wordt de browser niet weergegeven |
| Chrome DevTools | ☑ | Maakt het mogelijk om tools voor Chromium-debugging te gebruiken |
| Chrome Log Proxy connections | ☑ | Als deze optie is ingeschakeld, wordt informatie over Chrome-verbindingen in het logboek weergegeven |
| Chrome Wait Until | networkidle2 | Bepaalt wanneer een pagina als geladen wordt beschouwd. Meer over de waarden. |
| Use HTTP/2 transport | ☐ | Bepaalt of HTTP/2 moet worden gebruikt in plaats van HTTP/1.1. Bijvoorbeeld, Google en Majestic blokkeren direct bij gebruik van HTTP/1.1. |
| Don't verify TLS certs | ☐ | Uitschakelen van TLS-certificaatvalidatie |
| Randomize TLS Fingerprint | ☐ | Deze optie maakt het mogelijk om blokkades van websites op basis van TLS-fingerprinting te omzeilen |
| Bypass CloudFlare | ☑ | Automatisch omzeilen van CloudFlare-controle |
| Bypass CloudFlare with Chrome(Experimental) | ☐ | CloudFlare omzeilen via Chrome |
| Bypass CloudFlare with Chrome Max Pages | 20 | Max. aantal pagina's bij het omzeilen van CloudFlare via Chrome |
| Subdomains are internal | ☐ | Of subdomeinen als interne links moeten worden beschouwd |
| Follow links | Internal only | Welke links moeten worden gevolgd |
| Follow links limit | 0 | Limiet voor Follow links, toegepast op elk uniek domein |
| Skip comment blocks | ☐ | Of commentaarblokken moeten worden overgeslagen |