Sjabloon-tools (tools)
In de Template Toolkit-template-engine is een globale variabele $tools beschikbaar, die een set tools bevat die in elke sjabloon en binnen JS scrapers gebruikt kunnen worden.
Er bestaat ook een variabele $tools.error, die een beschrijving van fouten bevat als deze optreden tijdens het gebruik van de tools.
Query's toevoegen $tools.query.*
Met deze tool kunnen query's aan bestaande query's worden toegevoegd tijdens de uitvoering van de taak, waarbij ze worden gevormd op basis van reeds gescrapete resultaten. Het kan worden gebruikt als alternatief voor de functie Parse to level in scrapers waar deze niet is geïmplementeerd. Er zijn 2 methoden:
[% tools.query.add(query, maxLevel) %]- voegt een enkele query toe[% tools.query.addAll(array, item, maxLevel) %]- voegt een array van query's toe
De parameter maxLevel geeft aan tot welk niveau query's moeten worden toegevoegd en is optioneel: als deze wordt weggelaten, zal de scraper feitelijk nieuwe query's blijven toevoegen zolang deze er zijn. Het wordt ook aanbevolen om de optie Unique queries (Unieke query's) in te schakelen om lussen en overbodig werk van de scraper te voorkomen.
Het is mogelijk om een willekeurig niveau voor subquery's op te geven. Dit kan worden gebruikt voor het verdelen van logica, d.w.z. wanneer elk niveau een aparte functionaliteit vertegenwoordigt.
voorbeeld:
[% tools.query.add({query => query, lvl => 1}) %]- voegt een query toe aan een specifiek niveau.
voorbeeld voor JS:
this.query.add({
query: "some query",
lvl: 1,
})

Resultaat van de preset op de screenshot:
scraper:
parser
what is parsing in programming
parsing in compiler
compiler and parser development
what is syntax analysis
difference between lexical analysis and syntax analysis
syntax analyzer
parser programming language
parser:
parser definition
xml parser
parser generator
parser swtor
parser c++
ffxiv parser
html parser
parser java
what is parsing in programming:
parse wikipedia
parser compiler
what is a parser
parsing programming languages
definition of parser
parsing c++
parser define
parsing java
html parser:
online html parser
html parser php
html parser java
...
JSON-structuren verwerken $tools.parseJSON()
Met deze tool kunnen gegevens in JSON-formaat worden gedeserialiseerd naar variabelen (objecten) die beschikbaar zijn in de template-engine. Voorbeeld van gebruik:
[% tools.parseJSON(data) %]
Na deserialisatie kunnen de sleutels uit het verkregen object worden aangeroepen als gewone variabelen en arrays.
Als een string met ongeldige JSON als argument wordt opgegeven, zal de scraper de fout registreren in $tools.error.

Uitvoer naar CSV $tools.CSVline
Deze tool converteert waarden automatisch naar het CSV-formaat en voegt een regeleinde toe. Hierdoor is het in het resultaat-formaat voldoende om de gewenste variabelen op te sommen, en de uitvoer zal een geldig CSV-bestand zijn, klaar voor import in Google Docs / Excel / enz.
Voorbeeld van gebruik:
[% tools.CSVline(query, p1.serp.0.link, p2.title) %]
Video met gebruik van $tools.CSVline():
Werken met SQLite DB $tools.sqlite.*
Met deze tool kunt u eenvoudig en volledig werken met SQLite databases. Er zijn drie methoden:
$tools.sqlite.get()- methode om een enkel gegeven uit de DB op te halen met SELECT, bijvoorbeeld:
[% res = tools.sqlite.get('results/test.sqlite', 'SELECT COUNT(*) AS count FROM test') %]
$tools.sqlite.run()- methode om bewerkingen op de DB uit te voeren (INSERT, DROP enz.), bijvoorbeeld:
[% res = tools.sqlite.run('results/test.sqlite', 'INSERT INTO test VALUES(?)', 'test') %]
$tools.sqlite.all()- methode om alle gegevens uit een tabel weer te geven, bijvoorbeeld:
[% res = tools.sqlite.get('results/test.sqlite', 'SELECT * FROM test') %]
User-agent substitutie $tools.ua.*
Deze tool is bedoeld voor het vervangen van de user-agent in scrapers die deze gebruiken (bijvoorbeeld
Net::HTTP). Er zijn twee methoden:
$tools.ua.list()- bevat de volledige lijst met beschikbare user-agents.$tools.ua.random()- geeft een willekeurige user-agent uit de beschikbare lijst weer.
Voorbeeld van gebruik:

De lijst met alle user-agents wordt opgeslagen in het bestand files/tools/user-agents.txt, dat indien nodig kan worden bewerkt.
Bij het gebruik van deze tool voor de parameter User agent in scrapers, moet deze expliciet worden opgegeven:
[% tools.ua.random() %]
JS-ondersteuning in tools $tools.js.*
Met deze tool kunt u uw eigen JS-functies toevoegen en deze direct in de template-engine gebruiken. Ook het gebruik van Node.js-modules wordt ondersteund. Functies worden toegevoegd in Tools -> JavaScript Editor
Werken met base64 $tools.base64.*
Met deze tool kunt u direct in de scraper met base64 werken. Deze tool heeft 2 methoden:
$tools.base64.encode()- codeert tekst naar base64$tools.base64.decode()- decodeert een base64-string naar tekst
Voorbeeld van gebruik:

Gegevensnaslagwerk $tools.data.*
Deze tool is in feite een object dat een grote hoeveelheid vooraf ingestelde informatie bevat - talen, regio's, domeinen voor zoekmachines, enz. Volledige lijst van elementen (kan in de toekomst veranderen):
"YandexWordStatRegions", "TopDomains", "CountryCodes", "YahooLocalDomains", "GoogleDomains", "BingTranslatorLangs", "Top1000Words", "GoogleLangs", "GoogleInterfaceLangs", "EnglishMonths", "GoogleTrendsCountries"
Elk van deze elementen is een array of hash van gegevens; u kunt de inhoud bekijken door de gegevens bijvoorbeeld in JSON weer te geven:
[% tools.data.GoogleDomains.json() %]
Gegevensopslag in geheugen $tools.memory.*
Een eenvoudige key/value opslag in het geheugen, gedeeld door alle taken, API-verzoeken enz., wordt gereset bij het herstarten van de scraper. Er zijn drie methoden:
[% tools.memory.set(key, value) %]- stelt de waardevaluein voor de sleutelkey[% tools.memory.get(key) %]- retourneert de waarde die bij de sleutelkeyhoort[% tools.memory.delete(key) %]- verwijdert de record met sleutelkeyuit het geheugen
Informatie over de A-Parser versie ophalen $tools.aparser.version()
Met deze tool kunt u informatie over de versie van A-Parser ophalen en in het resultaat weergeven.
Voorbeeld van gebruik:
[% tools.aparser.version() %]
Taak-ID en aantal threads ophalen $tools.task.*
Met deze tool kunt u informatie over het taak-id ophalen en het aantal threads tonen. Er zijn twee methoden:
[% tools.task.id %]- retourneert het taak-id[% tools.task.threadsCount %]- retourneert het aantal threads dat in de taak wordt gebruikt
Taak stoppen $tools.task.stop()
Met deze tool kunt u de uitvoering van een taak op elk moment stoppen. Als argument wordt een string geaccepteerd die de reden voor het stoppen van de taak moet bevaten.
Voorbeeld van gebruik:
[% IF query.num == 3;
tools.task.stop('Stop after 3 queries');
END %]