Chuyển đến nội dung chính

Định dạng truy vấn

Query format (Định dạng truy vấn) - cho phép thêm các thay thế và định dạng truy vấn về dạng mong muốn bằng cách sử dụng các mẫu, được áp dụng cho mỗi truy vấn.

Định dạng truy vấn

Ví dụ về các định dạng truy vấn
  1. Định dạng truy vấn cho công cụ cào dữ liệu thứ 1
  2. Định dạng truy vấn cho công cụ cào dữ liệu thứ 2
  3. Định dạng truy vấn chung

Có 2 cách để chỉ định mẫu:

  • Định dạng truy vấn chung, nó được xử lý đầu tiên và hỗ trợ các thay thế
  • Định dạng truy vấn cho từng công cụ cào dữ liệu - cho phép thiết lập định dạng cụ thể cho các công cụ cào dữ liệu riêng lẻ

Hãy xem ví dụ trong ảnh chụp màn hình, giả sử chúng ta sử dụng một tệp danh sách tên miền làm truy vấn có dạng như sau:

google.com  
a-parser.com
yandex.ru

Định dạng truy vấn chung được thiết lập dưới dạng:

http://$query

Trước mỗi truy vấn gốc (tên miền), chuỗi http:// sẽ được thêm vào, truy vấn sẽ được chuyển đổi từ google.com -> http://google.com

Định dạng truy vấn cho công cụ cào dữ liệu thứ 1 giữ nguyên, nó sẽ cào dữ liệu cho truy vấn http://google.com

Định dạng truy vấn cho công cụ cào dữ liệu thứ 2 có dạng như sau:

site:$query

Truy vấn cho công cụ cào dữ liệu này sẽ được chuyển đổi: http://google.com -> site:http://google.com

Mẫu trong truy vấn

Trong định dạng truy vấn, công cụ tạo mẫu Template Toolkit được hỗ trợ đầy đủ, các biến khả dụng bao gồm:

  • $query - truy vấn sau khi định dạng qua định dạng kết quả chung
  • $query.num - số thứ tự của truy vấn
  • $query.lvl - mức độ lồng nhau của truy vấn khi sử dụng các tùy chọn Parse to level hoặc Parse all results
  • $query.orig - truy vấn gốc trước khi định dạng
  • $query.first - truy vấn đầu tiên khi sử dụng các tùy chọn Parse to level hoặc Parse all results
  • $query.prev - hiển thị truy vấn ở cấp độ trước đó, hoạt động cho HTML::LinkExtractorHTML::LinkExtractor, $tools.query.add và các công cụ cào dữ liệu JS this.query.add
  • Tất cả các biến được tạo thông qua Trình tạo truy vấn

Macro thay thế

Định dạng truy vấn chung hỗ trợ các macro sau:

MacroMô tảVí dụ
{az:START:END}Thay thế một chuỗi ký tự số. Thay vì START, hãy chỉ định bắt đầu chuỗi, thay vì END - kết thúc. Độ dài của END phải lớn hơn hoặc bằng độ dài của START. Các ký tự ở cuối chuỗi END phải đứng sau (theo thứ tự bảng chữ cái) các ký tự ở đầu chuỗi START. Có thể sử dụng bất kỳ chuỗi ký tự UTF-8 nào{az:a:z} - thay thế tất cả các ký tự từ a đến z (a, b, c, ..., x, z). {az:aaa:zzz} - thay thế tất cả các ký tự từ aaa đến zzz (aaa, aab, aac, ..., zzx, zzz). {az:a:zz} - thay thế tất cả các ký tự từ a đến zz (a, b, c, ... aa, ab, ..., zx, zz). {az:00:99} - thay thế tất cả các số từ 00 đến 99 (00, 01, 02, ..., 98, 99). {az:а:яяя} - thay thế tất cả các ký tự Cyrillic từ а đến яяя (а, б, ... аа, аб, ... яяю, яяя)
{each:WORD1,WORD2,...}Thay thế các từ được chỉ định WORD1, WORD2, v.v., độ dài không giới hạn{each:green,blue,red,black} - thay thế các từ green, blue, red, black. {each:,buy,sell} - thay thế từ trống, sau đó là buy và sell
{subs:NAME}Thay thế các từ bổ sung từ các tệp trong thư mục queries/subs/. Thay vì NAME, cần chỉ định tên tệp, không có phần mở rộng .txt{subs:zones} - thay thế tất cả các dòng từ tệp queries/subs/zones.txt
{num:START:END}Macro duyệt qua các số trong phạm vi được chỉ định. Thay vì START, hãy chỉ định bắt đầu khoảng, thay vì END - kết thúc. Hỗ trợ số thập phân.{num:1:1000} - thay thế tất cả các số từ 1 đến 1000 (1, 2, 3 ..., 999, 1000)
{num:START:END:STEP}Macro duyệt qua các số trong phạm vi được chỉ định, với bước nhảy được chỉ định. Thay vì START, hãy chỉ định bắt đầu khoảng, thay vì END - kết thúc, thay vì STEP - bước nhảy. Hỗ trợ số thập phân.{num:0:1000:10} - thay thế tất cả các số từ 0 đến 1000 với bước nhảy 10 (0, 10, 20 ..., 990, 1000)
{num:END:START}Macro duyệt qua các số trong phạm vi được chỉ định theo thứ tự ngược lại. Thay vì END - chỉ định kết thúc khoảng, START chỉ định bắt đầu khoảng. Hỗ trợ số thập phân.{num:1000:1} - thay thế tất cả các số từ 1000 đến 1 (1000, 999, 998, ..., 2, 1)
{num:END:START:STEP}Macro duyệt qua các số trong phạm vi được chỉ định theo thứ tự ngược lại, với bước nhảy được chỉ định. Thay vì END - chỉ định kết thúc khoảng, START chỉ định bắt đầu khoảng, thay vì STEP - bước nhảy. Hỗ trợ số thập phân.{num:1000:1:10} - thay thế tất cả các số từ 1000 đến 1 với bước nhảy 10 (1000, 990, 980, ..., 10, 1)

⏩ Video: Macro thay thế

Trong video này sẽ xem xét:

  • macro {num} trong các ví dụ về phân trang và duyệt tọa độ trong công cụ cào dữ liệu Maps::GoogleMaps::Google
  • macro {az} trên ví dụ cào dữ liệu với inurl: để tăng số lượng truy vấn và kết quả tương ứng
  • macro {each} trên ví dụ cào dữ liệu gợi ý để tạo các cụm từ

Kết hợp các macro thay thế

Các macro thay thế có thể được kết hợp với nhau. Ví dụ phức hợp:

$query site:{subs:zones} {az:aa:zz}

Giả sử một trong các truy vấn để cào dữ liệu là viagra, và trong tệp queries/subs/zones.txt có danh sách các vùng sau: com, net, org, khi đó bộ kết hợp sau sẽ được đưa vào cào dữ liệu:

viagra site:com ab  
...
viagra site:net jj
...
viagra site:eek.rg zz

Tổng số truy vấn sẽ tương ứng với phép nhân các tổ hợp có thể có:

1 truy vấn (viagra) x 3 vùng ({subs:zones}) x 676 biến thể ký tự ({az:aa:zz}) = 2028 truy vấn