A-Parser Şablon Çalışma Özellikleri
Şablonların test edilmesi
A-Parser şablonların hata ayıklaması ve test edilmesi için özel bir araç mevcuttur: Şablonların test edilmesi
Diziler için .format metodu
A-Parser sonuçların çoğu iç içe öğeler içeren diziler halinde sunulur. Teknik dille ifade edersek - sonuçlar, her hash'in sabit anahtarlar taşıdığı bir hash dizisi olarak sunulur. Bunu
SE::Google veri kazıyıcısı örneğiyle inceleyelim; sonuçlarda $serp dizisi, $link, $anchor ve $snippet öğelerini (ve diğerlerini) içerir:
"serp" : [
{
"link" : "http://www.speedtest.net/",
"anchor" : "Speedtest.net by Ookla - The Global Broadband Speed <b>Test</b>",
"snippet" : "<b>Test</b> your Internet connection bandwidth to locations around the world with this <br>interactive broadband speed <b>test</b> from Ookla."
},
{
"link" : "http://www.speakeasy.net/speedtest/",
"anchor" : "Speakeasy Speed <b>Test</b>",
"snippet" : "Speakeasy Speed <b>Test</b> - Broadband Speed <b>Test</b>. Go to MegaPath Speed <b>Test</b> ... <br>02:38:36 PM Your IP: The Speakeasy Speed <b>Test</b> requires Flash v7 or higher."
},
{
"link" : "http://en.wikipedia.org/wiki/Test_cricket",
"anchor" : "<b>Test</b> cricket - Wikipedia, the free encyclopedia",
"snippet" : "<b>Test</b> cricket is the longest form of the sport of cricket. <b>Test</b> matches are played <br>between national representative teams with "<b>Test</b> status", as determined by the ..."
}
]
Böyle bir dizideki verileri kolayca dolaşmak ve çıktı almak için, dizinin tüm öğelerini belirli bir formatta (örneğin tüm bağlantıları satır sonu karakteriyle) birleştirmenize olanak tanıyan .format metodu oluşturulmuştur:
$serp.format('$link\n')
Sonuç olarak her bağlantıyı yeni bir satıra kaydeder:
http://www.speedtest.net/
http://www.speakeasy.net/speedtest/
http://en.wikipedia.org/wiki/Test_cricket
Snippet'lerin çıktısı:
$serp.format('$snippet\n')
<b>Test</b> your Internet connection bandwidth to locations around the world with this <br>interactive broadband speed <b>test</b> from Ookla.
Speakeasy Speed <b>Test</b> - Broadband Speed <b>Test</b>. Go to MegaPath Speed <b>Test</b> ...<br>02:38:36 PM Your IP: The Speakeasy Speed <b>Test</b> requires Flash v7 or higher.
<b>Test</b> cricket is the longest form of the sport of cricket. <b>Test</b> matches are played <br>between national representative teams with "<b>Test</b> status", as determined by the ...
Bağlantılar, anchorlar ve snippet'ler aynı anda:
$serp.format('Link: $link, Anchor: $anchor, Snippet: $snippet\n')
Link: http://www.speedtest.net/, Anchor: Speedtest.net by Ookla - The Global Broadband Speed <b>Test</b>, Snippet: <b>Test</b> your Internet connection bandwidth to locations around the world with this <br>interactive broadband speed <b>test</b> from Ookla.Link: http://www.speedtest.net/, Anchor: Speedtest.net by Ookla - The Global Broadband Speed <b>Test</b>, Snippet: <b>Test</b> your Internet connection bandwidth to locations around the world with this <br>interactive broadband speed <b>test</b> from Ookla.
Link: http://www.speakeasy.net/speedtest/, Anchor: Speakeasy Speed <b>Test</b>, Snippet: Speakeasy Speed <b>Test</b> - Broadband Speed <b>Test</b>. Go to MegaPath Speed <b>Test</b> ... <br>02:38:36 PM Your IP: The Speakeasy Speed <b>Test</b> requires Flash v7 or higher.Link: http://www.speakeasy.net/speedtest/, Anchor: Speakeasy Speed <b>Test</b>, Snippet: Speakeasy Speed <b>Test</b> - Broadband Speed <b>Test</b>. Go to MegaPath Speed <b>Test</b> ... <br>02:38:36 PM Your IP: The Speakeasy Speed <b>Test</b> requires Flash v7 or higher.
Link: http://en.wikipedia.org/wiki/Test_cricket, Anchor: <b>Test</b> cricket - Wikipedia, the free encyclopedia, Snippet: <b>Test</b> cricket is the longest form of the sport of cricket. <b>Test</b> matches are played <br>between national representative teams with "<b>Test</b> status", as determined by the ...Link: http://en.wikipedia.org/wiki/Test_cricket, Anchor: <b>Test</b> cricket - Wikipedia, the free encyclopedia, Snippet: <b>Test</b> cricket is the longest form of the sport of cricket. <b>Test</b> matches are played <br>between national representative teams with "<b>Test</b> status", as determined by the ...
Format içerisinde orijinal sorguyu (veya diğer mevcut değişkenleri) kullanmak da mümkündür; bu, sorgu ile dizinin her bir öğesi arasında bir eşleşme tanımlamanıza olanak tanır:
$serp.format('$query: $link\n')
test: http://www.speedtest.net/
test: http://www.speakeasy.net/speedtest/
test: http://en.wikipedia.org/wiki/Test_cricket
Nesneler için .json metodu
Bilindiği üzere, A-Parser tüm veriler değişkenler şeklinde sunulur. Bu verileri JSON formatına serileştirmek (String tipine dönüştürmek) için bir metod mevcuttur: .json. Örneğin:
$results.json

Sonuç Dosya Adında statik şablon bayrağı
isStaticTemplate() bayrağı, Sonuç dosya adı formatlamasındaki dinamik bir şablonu statik hale getirmenize olanak tanır.
Çalışma prensibi: Bu bayrak Sonuç dosya adı formatlamasında kullanıldığında, şablon görev başladığında bir kez yürütülür ve böylece statik kabul edilir. Bu, dosyaları daha esnek bir şekilde adlandırmanıza ve aynı zamanda getTaskResultsFile API metodu aracılığıyla onlara bağlantı alma yeteneğini korumanıza olanak tanır.
Kullanım örneği:
[% isStaticTemplate(); tools.js.eval('Date.now()') %]
Mevcut değişkenler
Sonuç dosya adını oluştururken
Değişken interpolasyonu
Varsayılan olarak şablonlar [% ve %] etiketleri arasına yazılır; etiketlerin dışındaki her şey, sonuca olduğu gibi aktarılacak normal metindir.
A-Parser ek olarak değişken interpolasyonu etkindir; bu, metin içindeki değişkenlere $ sembolü aracılığıyla erişmenizi sağlar.
Bunun yanı sıra, \n de açık bir satır sonu olarak enterpole edilir.
Örnek:
Sorgu başına toplam sonuç: $query: $totalcount\n
$query ve $totalcount yerlerine ilgili değişkenlerin değerleri yerleştirilecek, \n ise satır sonu ile değiştirilecektir.
İnterpolasyon kullanmadan eşdeğer yazım:
Sorgu başına toplam sonuç: [% query %]: [% totalcount; "\n" %]
Lütfen dikkat edin, Template Toolkit şablonlarında değişkenler $ öneki olmadan yazılır.
Şablon kullanım senaryoları
Sorgu formatlama

Bu örnekte, Alexa top500.txt dosyasındaki her bir domaine site: arama operatörü eklenecek ve bir boşluk bırakılarak words.txt dosyasındaki yerleştirmeler eklenecektir.
Sonuç formatlama

Bu örnekte sorgu, arama sonuçlarındaki sonuç sayısı ve ilgili anahtar kelime sayısı çıktı olarak verilecektir. Ayrıca toplanan anchorların listesi de görüntülenecektir.
Sonuç filtrelemede şablonlar

Bir şablon belirleyebilmek için açılır listeden Custom Template seçilmelidir.
Bu örnekte, sonuç olarak yalnızca 5'ten az sonuç toplanan sorgular çıktı olarak verilecektir.
Düzenli ifade (regex) seçeneği kullanılırken şablonlar

Bu örnekte veri kazıyıcı, sorgunun ikinci argümanı olarak iletilen kelimeyi içeren cümleleri toplayacaktır. Çalışma algoritması şöyledir: Sorgu, Sorgu Oluşturucu tarafından belirtilen ayırıcıya göre bağlantı ve kelime olarak ikiye ayrılır; veri kazıyıcı bağlantıya gider, metni seçer; sorgudaki kelime düzenli ifadeye yerleştirilir ve bu ifadeyle cümleler toplanır.
Örneği indir
Örneği A-Parser nasıl içe aktarırım
eJyNVE1T2zAQ/StUEwYo1EkoDK0vncA003YCoSScHLejxmtXjWwZSYZkQv57d2XH
diiHXmTp6b3d1X54zSw3C3OrwYA1zA/WLHd75rMIYl5Iy05YzrUBTdcB+zK9Hvn+
FJb289JqPrdKI6Pmrpld5YDqeWGsSu/AlCZ0ufEDZlFqEKEvC+kmgSUKDoNZ0Tvr
997R5zQOgx/em0+zWTab6fA42N97KECvvAWs9vZ37t4GuA+Pj1hlalr6F0nttUK4
1nyFoPve8JQwY7XIElNT6Y0VyMJNGNb4UOmUU1Y6ed+rVF7swMODTglgQAdHjakJ
f4SpQkksJDTwEE+V907ELdDt1tKRZ5eULR5FwgqVcVn6pbCaWO4zgclAfaaQS3kR
YIZapQi5rJbgahtzwDruTNkunPZ7qWF+zKWBE2Yw1CHHQKKXN8KC5ljjcU7xIL5m
KhtIOYJHkA3N2b8shIywTwYxir5Wwtcp439sbOrntV09gn7SGENtxZ0ux9eNKlIj
lWyTIUUqLJ7NlSoyKlcPwQVAXufshmip0lC7qSxX3nEUcsgiZDYlG+QNtPMMNzBG
FXpOpsskn2wnoGyKSS4FVcQATlGZEPZMJEWF2Uqwranfao8tBwjOVRaLZIzJ0CKC
bTMU2RRnd5xdqTSXQDnKCimxxAbumlYbmKqkdGge+1J85VzsTL1VSppvk/LZuRYY
8DkFmGJV2l4rk3Mu5f3dqH3DmvbEw29rc+N3u7rwnsRC5BAJ7imddOnUdVPfp/X9
B7dGtJ6dun3PrdwhLc7Zhduft3DesvDxZ0sctfa/WqSL5/8hMXqfhURhtTD7VKnq
p1j/Otev/hr99QZ79I+5LdlUBOIihtU02IDM72/+Ar1q4iA=
Veri kazıyıcı ayarlarındaki şablonlar
Rastgele user-agent yerleştirme örneği
Önceden tanımlanmış makroların ayarlanması
A-Parser, tüm şablonlar için küresel olarak erişilebilir olacak şablon makrolarını ve önceden tanımlanmış değişkenleri yapılandırabilirsiniz; küresel makroları Settings -> Advanced Settings kısmında belirtebilirsiniz.
Varsayılan olarak orada, sonuç dosya adı formatlaması için zamanı formatlamak üzere kullanılan $datefile nesnesinin ön tanımı zaten bulunmaktadır.
Makro ekleme ve kullanma
Bu örnekte küresel bir değişkenin ayarlanması gösterilmiştir. Bu, örneğin birden fazla Instagram veri kazıyıcısında aynı çerezleri (cookies) kullanmanız gerektiğinde yararlı olabilir.
Kurulum örneği:

Şablonun kapatma parantezi olan -%] sözdizimine dikkat edin. Bu, satır sonunu kaldırmak için gereklidir, aksi takdirde herhangi bir şablon kullanıldığında başlangıca boş bir satır eklenecektir.
Kullanım örneği:
