Đặc điểm hoạt động của mẫu trong A-Parser
Kiểm tra mẫu
Để gỡ lỗi và kiểm tra các mẫu trong A-Parser, có một công cụ đặc biệt: Kiểm tra mẫu
Phương thức .format cho mảng
Trong A-Parser, phần lớn kết quả được biểu diễn dưới dạng các mảng với các phần tử lồng nhau. Nói theo ngôn ngữ kỹ thuật - kết quả được biểu diễn dưới dạng một mảng các hash, trong đó mỗi hash có các khóa cố định. Hãy xem điều này qua ví dụ của công cụ cào dữ liệu
SE::Google, trong kết quả nó chứa mảng $serp với các phần tử $link, $anchor và $snippet (và các phần tử khác):
"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 ..."
}
]
Để duyệt và xuất dữ liệu từ một mảng như vậy một cách thuận tiện, phương thức .format đã được tạo ra, cho phép kết nối tất cả các phần tử của mảng theo một định dạng nhất định, ví dụ: tất cả các liên kết thông qua dòng mới:
$serp.format('$link\n')
Kết quả là mỗi liên kết sẽ được lưu trên một dòng mới:
http://www.speedtest.net/
http://www.speakeasy.net/speedtest/
http://en.wikipedia.org/wiki/Test_cricket
Xuất các đoạn trích (snippets):
$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 ...
Liên kết, văn bản neo (anchors) và đoạn trích đồng thời:
$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 ...
Trong định dạng cũng có thể sử dụng truy vấn gốc (hoặc các biến có sẵn khác), cho phép thiết lập sự tương ứng giữa truy vấn và từng phần tử của mảng:
$serp.format('$query: $link\n')
test: http://www.speedtest.net/
test: http://www.speakeasy.net/speedtest/
test: http://en.wikipedia.org/wiki/Test_cricket
Phương thức .json cho đối tượng
Như đã biết, tất cả dữ liệu trong A-Parser được trình bày dưới dạng các biến. Có một phương thức tuần tự hóa (chuyển đổi sang kiểu String) các dữ liệu đó sang định dạng JSON: .json. Ví dụ:
$results.json

Cờ mẫu tĩnh trong Tên tệp kết quả
Cờ isStaticTemplate() cho phép làm cho một mẫu động trong Tên tệp kết quả trở nên tĩnh.
Nguyên lý hoạt động: khi sử dụng cờ này trong Tên tệp kết quả, mẫu sẽ được thực thi một lần khi bắt đầu tác vụ và do đó sẽ được coi là tĩnh. Điều này cho phép đặt tên tệp linh hoạt hơn trong khi vẫn giữ được khả năng nhận liên kết đến chúng thông qua phương thức API getTaskResultsFile.
Ví dụ sử dụng:
[% isStaticTemplate(); tools.js.eval('Date.now()') %]
Các biến có sẵn
Nội suy biến
Theo mặc định, các mẫu được viết giữa các thẻ [% và %], mọi thứ bên ngoài các thẻ là văn bản bình thường sẽ được chuyển vào kết quả nguyên trạng.
Trong A-Parser, tính năng nội suy biến được bật bổ sung, cho phép truy cập các biến trong văn bản thông qua ký tự $.
Ngoài ra, \n cũng được nội suy như một ký tự xuống dòng rõ ràng.
Ví dụ:
Tổng số kết quả cho truy vấn $query: $totalcount\n
Tại vị trí của $query và $totalcount, giá trị của các biến tương ứng sẽ được thay thế, \n sẽ được thay thế bằng ký tự xuống dòng.
Cách viết tương đương không sử dụng nội suy:
Tổng số kết quả cho truy vấn [% query %]: [% totalcount; "\n" %]
Lưu ý rằng trong các mẫu Template Toolkit, các biến được viết không có tiền tố $.
Các trường hợp sử dụng mẫu
Định dạng truy vấn

Trong ví dụ này, đối với mỗi tên miền từ tệp Alexa top500.txt, toán tử tìm kiếm site: sẽ được thêm vào và thông qua một khoảng trắng, các thế chỗ từ tệp words.txt sẽ được thêm vào.
Định dạng kết quả

Trong ví dụ này, truy vấn, số lượng kết quả trong kết quả tìm kiếm và số lượng từ khóa liên quan sẽ được xuất ra. Ngoài ra, danh sách các văn bản neo đã thu thập cũng sẽ được hiển thị.
Mẫu khi lọc kết quả

Để có thể thiết lập mẫu, trong danh sách thả xuống, bạn nên chọn Custom Template.
Trong ví dụ này, chỉ những truy vấn có ít hơn 5 kết quả được thu thập mới được xuất ra dưới dạng kết quả.
Mẫu khi sử dụng tùy chọn Sử dụng biểu thức chính quy

Trong ví dụ này, công cụ cào dữ liệu sẽ thu thập các câu có chứa từ được truyền vào làm đối số thứ hai của truy vấn. Thuật toán hoạt động như sau: truy vấn được Trình tạo truy vấn chia theo dấu phân cách đã chỉ định thành liên kết và từ; công cụ cào dữ liệu truy cập liên kết, chọn văn bản; từ trong truy vấn được đưa vào biểu thức chính quy và các câu được thu thập bằng biểu thức đó.
Tải xuống ví dụ
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=
Mẫu trong cài đặt công cụ cào dữ liệu
Ví dụ về thay thế user-agent ngẫu nhiên
Thiết lập macro được cài đặt sẵn
Trong A-Parser, bạn có thể thiết lập các macro mẫu và các biến được cài đặt sẵn sẽ có sẵn trên toàn cầu cho tất cả các mẫu, bạn có thể chỉ định các macro toàn cầu trong Settings -> Advanced Settings.
Theo mặc định, ở đó đã chứa định nghĩa trước của đối tượng $datefile, được sử dụng để định dạng thời gian cho tên tệp kết quả.
Thêm và sử dụng macro
Trong ví dụ này, việc thiết lập một biến toàn cầu được trình bày. Điều này có thể hữu ích, ví dụ, nếu cần sử dụng cùng một cookie trong nhiều công cụ cào dữ liệu Instagram.
Ví dụ thiết lập:

Lưu ý cú pháp của dấu ngoặc đóng mẫu -%]. Điều này là cần thiết để xóa ký tự xuống dòng, nếu không khi sử dụng bất kỳ mẫu nào, một dòng trống sẽ được thêm vào đầu.
Ví dụ sử dụng:
